Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Convert from Container to TypeScript Action #311

Open
wants to merge 8 commits into
base: main
Choose a base branch
from

Conversation

ncalteen
Copy link
Collaborator

Currently, this action is configured as a Docker container action. This leads to extra startup time to build and run the container.

This PR converts this action to TypeScript/JavaScript following the actions/typescript-action template along with a number of other improvements:

GitHub Actions Workflows

  • Added a new workflow for continuous integration to run tests, linting, and format checks on pull requests and pushes to the main branch (.github/workflows/continuous-integration.yml).
  • Introduced a new workflow to check the status of transpiled JavaScript in the dist/ directory to ensure it matches the expected output (.github/workflows/check-dist.yml).
  • Updated the CodeQL analysis workflow to use the latest versions of actions and adjusted the schedule and permissions (.github/workflows/codeql-analysis.yml).
  • Added a new workflow for license checks using the Licensed tool to ensure all dependencies have valid licenses (.github/workflows/licensed.yml).
  • Created a new workflow for linting the codebase on pull requests and pushes to the main branch (.github/workflows/linter.yml).

Dependency Management

  • Added a dependabot.yml configuration to manage dependency updates for GitHub Actions and npm packages (.github/dependabot.yml).
  • Updated license files for various dependencies to reflect the latest versions and correct license text (.licenses/npm/@actions/core.dep.yml, .licenses/npm/@actions/exec.dep.yml, .licenses/npm/@actions/github.dep.yml). [1] [2] [3]

Configuration Files

  • Added a new development container configuration for TypeScript development with VS Code customizations and necessary extensions (.devcontainer/devcontainer.json).
  • Updated .gitattributes to set line endings to LF and mark the dist/ directory as generated (.gitattributes).

Other Changes

  • Changed code owners to @actions/actions-oss-maintainers
  • Fixed example action in README
  • Added 100% unit test coverage
  • Removed unused dependencies, including tar files from @actions/toolkit
  • Added linting and testing configurations for ESLint, Prettier, and Jest
  • Updated licenses for all dependencies to reflect the latest versions and correct license

@Copilot Copilot bot review requested due to automatic review settings February 19, 2025 18:57
@ncalteen ncalteen requested a review from a team as a code owner February 19, 2025 18:57
@ncalteen ncalteen self-assigned this Feb 19, 2025
@ncalteen ncalteen requested a review from thboop February 19, 2025 18:57

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

PR Overview

This PR converts the action from a Docker container to a TypeScript/JavaScript action, improving startup times and consolidating workflows and dependency management. Key changes include new and updated GitHub Actions workflows for CI, CodeQL analysis, license checks, linting, and release management; updates to dependency and license configuration files; and overall improvements to project configuration.

Changes

File Description
.github/workflows/check-dist.yml Adds a workflow to verify that the transpiled output in the dist/ directory is up-to-date.
.github/workflows/continuous-integration.yml Introduces a CI workflow for tests, linting, and format checks.
.github/workflows/release.yml Adds a release workflow using semver tagging and release creation steps.
.github/workflows/licensed.yml Provides a workflow for ensuring dependency licenses are valid using the Licensed tool.
.github/workflows/linter.yml Adds a workflow to run the Super Linter for code quality checks.
.github/dependabot.yml Configures Dependabot for GitHub Actions and npm package updates.
.licensed.yml Updates license configuration for dependencies.
.github/workflows/codeql-analysis.yml Updates CodeQL analysis workflow with changes to schedule and action versions.
.github/workflows/first-interaction.yml Adjusts the workflow for first interaction on issues and pull requests.
Various .licenses files Update dependency versions, license texts, and homepages to reflect the current state.

Copilot reviewed 89 out of 89 changed files in this pull request and generated no comments.

Comments suppressed due to low confidence (2)

.licenses/npm/@actions/http-client.dep.yml:7

  • The license type was changed from 'mit' to 'other' in this dependency file; please verify that this change aligns with the actual license and that the accompanying license text is correct.
license: other

.github/workflows/first-interaction.yml:14

  • [nitpick] The job ID 'first-interaction' could be renamed (e.g. to 'firstInteraction') for consistency with other workflow job naming conventions used in this repository.
first-interaction:

Tip: Copilot only keeps its highest confidence comments to reduce noise and keep you focused. Learn more

@github-advanced-security
Copy link

This pull request sets up GitHub code scanning for this repository. Once the scans have completed and the checks have passed, the analysis results for this pull request branch will appear on this overview. Once you merge this pull request, the 'Security' tab will show more code scanning analysis results (for example, for the default branch). Depending on your configuration and choice of analysis tool, future pull requests will be annotated with code scanning analysis results. For more information about GitHub code scanning, check out the documentation.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant