Commit Graph

65 Commits

Author SHA1 Message Date
per1234
52cf9c57ce Merge pull request #369 from arduino/dependabot/github_actions/actions/download-artifact-3
build(deps): bump actions/download-artifact from 2 to 3
2022-04-11 09:47:39 -07:00
dependabot[bot]
285357b037 build(deps): bump actions/download-artifact from 2 to 3
Bumps [actions/download-artifact](https://github.com/actions/download-artifact) from 2 to 3.
- [Release notes](https://github.com/actions/download-artifact/releases)
- [Commits](https://github.com/actions/download-artifact/compare/v2...v3)

---
updated-dependencies:
- dependency-name: actions/download-artifact
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-04-11 11:17:15 +00:00
dependabot[bot]
c7eb08d3e2 build(deps): bump actions/upload-artifact from 2 to 3
Bumps [actions/upload-artifact](https://github.com/actions/upload-artifact) from 2 to 3.
- [Release notes](https://github.com/actions/upload-artifact/releases)
- [Commits](https://github.com/actions/upload-artifact/compare/v2...v3)

---
updated-dependencies:
- dependency-name: actions/upload-artifact
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-04-11 11:17:13 +00:00
dependabot[bot]
dab2dff358 build(deps): bump actions/checkout from 2 to 3
Bumps [actions/checkout](https://github.com/actions/checkout) from 2 to 3.
- [Release notes](https://github.com/actions/checkout/releases)
- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)
- [Commits](https://github.com/actions/checkout/compare/v2...v3)

---
updated-dependencies:
- dependency-name: actions/checkout
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-03-02 11:14:27 +00:00
dependabot[bot]
bb334253a4 build(deps): bump actions/setup-python from 2 to 3
Bumps [actions/setup-python](https://github.com/actions/setup-python) from 2 to 3.
- [Release notes](https://github.com/actions/setup-python/releases)
- [Commits](https://github.com/actions/setup-python/compare/v2...v3)

---
updated-dependencies:
- dependency-name: actions/setup-python
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-03-01 03:24:35 +00:00
dependabot[bot]
8f2cc8fa3a build(deps): bump actions/setup-node from 2 to 3
Bumps [actions/setup-node](https://github.com/actions/setup-node) from 2 to 3.
- [Release notes](https://github.com/actions/setup-node/releases)
- [Commits](https://github.com/actions/setup-node/compare/v2...v3)

---
updated-dependencies:
- dependency-name: actions/setup-node
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-02-25 11:14:34 +00:00
per1234
c5e1c67aa3 Prevent inappropriate @types/node bumps from Dependabot
The project has a dependency on the `@types/node` package. This package follows the major version of Node.js.

https://stackoverflow.com/questions/42035263/relationship-between-the-version-of-node-js-and-the-version-of-types-node

Since we are now using Node.js 16.x for the development of the project, we must also use the ^16.x series of
`@types/node`.

Since there are 17.x versions of the `@types/node` package available, Dependabot would submit unwanted PRs to bump the
dependency to those versions. This configuration prevents that. Dependabot will continue to submit PRs for bumps to any
new minor or patch releases made within the current major version series.

Since this configuration prevents Dependabot from submitting major version bumps, The `@types/node` dependency version
must be updated manually when we update to using a new major version of Node.js for the development of this project.

Reference:
https://docs.github.com/en/code-security/supply-chain-security/keeping-your-dependencies-updated-automatically/configuration-options-for-dependency-updates#specifying-dependencies-and-versions-to-ignore
2022-01-12 20:50:12 -08:00
per1234
4f37628acd Update Node.js version used for development and CI to 16
The test runner CI workflow was using Node.js 12.x, which reaches EOL 2022-04-30.

Other workflows did not specify a Node.js version, meaning they used whatever was installed on the GitHub Actions runner.

It will be best to define a specific version series for use and use that throughout the infrastructure and development.
2022-01-10 18:14:34 -08:00
per1234
a6a777cd8e Use major version ref of carlosperate/download-file-action
The `carlosperate/download-file-action` action is used in the GitHub Actions workflows as a convenient way to download
external resources.

A major version ref has been added to that repository. It will always point to the latest release of the "1" major
version series. This means it is no longer necessary to do a full pin of the action version in use as before.

Use of the major version ref will cause the workflow to use a stable version of the action, while also benefiting from
ongoing development to the action up until such time as a new major release of an action is made. At that time we would
need to evaluate whether any changes to the workflow are required by the breaking change that triggered the major
release before manually updating the major ref (e.g., uses: `carlosperate/download-file-action@v2`). I think this
approach strikes the right balance between stability and maintainability for these workflows.
2021-12-20 03:43:20 -08:00
per1234
d425f223a0 Add CI workflow to synchronize with shared repository labels
On every push that changes relevant files, and periodically, configure the repository's issue and pull request labels
according to the universal, shared, and local label configuration files.
2021-10-12 16:20:57 -07:00
per1234
c33b49ccaf Add source URL comments to standardized assets
This will make it easier for the maintainers to sync fixes and improvements in either direction between the upstream
"template" assets and their installation in this repository.
2021-08-13 14:36:00 -07:00
per1234
d422e81247 Use standardized Prettier formatting task name
This is the naming convention established in the standardized template workflow.
2021-08-13 14:20:45 -07:00
per1234
12f0e50cbd Enhance "Check License" workflow's error output
The use of the `error` workflow command will cause the important error message output to be surfaced prominently in the
workflow run summary and log. The workflow run logs can be somewhat labyrinthine to those who don't work with them
regularly, so finding the previous output to determine what caused the failure might have been challenging.
2021-08-13 14:15:17 -07:00
per1234
8a1c8c74c6 Use conservative env var brace wrapping in "Check License" workflow
Even if it works as intended, it is not clear what the effect is of the escaped quote at the end of the environment
variables in the shell commands used to check the license detection results. Wrapping the variable names in braces
ensures they are as expected and also makes the working of the code clear.
2021-08-13 14:14:27 -07:00
per1234
ca79fc3beb Always check both license filename and type in "Check License" workflow
This might provide some additional useful context to the reader in the event of a failure.
2021-08-13 14:12:36 -07:00
per1234
5be572fc15 Use workflow variables for tool versions
Placement of this information at the top of the file, where it is easy to find and edit, facilitates updates to the
workflows as the tool versions used for project development are bumped periodically.
2021-08-13 05:49:48 -07:00
per1234
0a4f7829e1 Use standardized step names in workflows
These are the naming conventions established in the standardized template workflows.
2021-08-13 05:48:50 -07:00
per1234
5a8e7237b1 Compress workflow paths filters
The paths filter is used to make GitHub Actions workflows more efficient and contributor friendly by preventing pointless
workflow runs from happening when only irrelevant files were modified. However, careful consideration must be given to
which files are relevant. In some cases, this can lead to a very lengthy list of path patterns. These can be compressed
down through the use of advanced patterns.
2021-08-13 05:43:20 -07:00
per1234
7d03df8663 Make workflow paths filters handle either YAML extension
There are two file extensions in common use for YAML files: `.yaml` and `.yml`. Although this project uses `.yml`
exclusively for YAML files, these are standardized workflows which might be applied to projects that have established the
use of the other extension. It will be most flexible if it supports both.
2021-08-13 05:42:07 -07:00
per1234
e91764a254 Use new action name in CI workflows
This useful action is an integral part of the CI system. Now that it has a dedicated repository and a new name, the CI
workflows must be updated to use the latest release version of the action.
2021-05-20 00:07:44 -07:00
per1234
ee66277aca Correct name of workflow step for setting up Node.js
The version number is clearly shown in the action input, so there is no need to specify it in the step name.
2021-05-18 23:19:13 -07:00
per1234
29fafc759d Correct typo in workflow step name
Copy/paste error.
2021-05-10 02:41:27 -07:00
per1234
74e3fe1ed7 Configure test workflow to run all matrix jobs before failing
The default behavior is to cancel all the other matrix jobs if one fails. However, it can often be valuable to see what
the results are of the other jobs. In this case where the matrix is operating systems, it can be useful to see whether
the problem is specific to one OS, or if it affects all.
2021-05-10 02:41:27 -07:00
per1234
a8f1259974 Add additional trigger events to test workflow
The `workflow_dispatch` event trigger allows the workflow to be run manually via the GitHub web interface. This can be
useful to trigger the workflow run in cases where the standard triggers won't, such as testing how external changes
(e.g., actions used in the workflow) affected it.

The `repository_dispatch` event serves a similar purpose, except triggered via the GitHub API.
2021-05-10 02:41:27 -07:00
per1234
a448082759 Set up path filters for test workflow trigger
The "Test TypeScript" workflow should only run when relevant files are modified.
2021-05-10 02:41:27 -07:00
per1234
1d0268d149 Use same Node.js version as the action environment for tests
Node.js 12 is the newest version available for the JavaScript GitHub Actions actions, and is the one in use, as specified
in action.yml's `runs.using` key. So it is best to use the same when running the tests in the CI workflow.
2021-05-10 02:41:27 -07:00
per1234
8d2f9435e6 Use supported actions/setup-node input name
The `version` input name previously in use has been deprecated in favor of `node-version` and is no longer supported:

https://github.com/actions/setup-node/blob/v2.1.5/action.yml#L27
2021-05-10 02:41:27 -07:00
per1234
5047717152 Use major version refs of GitHub Actions actions
Use of the major version ref will cause the workflow to use stable release versions of the utility actions while
automatically benefiting from ongoing development to those actions up until such time as a new major release of an action
is made. At that time we would need to evaluate whether any changes to the workflow are required by the breaking change
that triggered the major release before updating the major ref
(e.g., `uses: actions/checkout@v2` -> `uses: actions/checkout@v3`).
2021-05-10 02:41:27 -07:00
per1234
d195d5f4f0 Configure CI workflow to tun tests for macOS
Previously, tests were only run on Ubuntu and Windows.
2021-05-10 02:41:27 -07:00
per1234
a76159e91f Use more meaningful name for the test workflow
"setup-taskflile" was an artifact of the project's previous home in the `arduino/actions` repo, which hosts multiple
actions. In that case, it made some sense to have a single monolithic workflow for each project, named after the project.
Now that the action has a dedicated repository. It is more useful to name the workflows according to their intended
purpose.
2021-05-10 02:41:27 -07:00
per1234
9edd380e7a Merge pull request #45 from per1234/add-tsconfig-eslint
Validate tsconfig.eslint.json
2021-05-10 01:50:37 -07:00
per1234
86147ec04d Validate tsconfig.eslint.json
At the time the "Check TypeScript Configuration" workflow was created, the eslint proposal was still pending, so only
tsconfig.json was validated in the initial implementation of the workflow.

Now that the project contains two tsconfig files and the infrastructure is in place to easily validate any number of
these files, it might as well be used to the fullest extent.
2021-05-08 13:34:20 -07:00
per1234
1c240edad5 Configure Dependabot for Python dependencies
Even though the project's current use of Python is insignificant, we already have the infrastructure in place and
Dependabot has been very useful for the other dependencies, so it makes sense to use it for everything.
2021-05-07 21:02:38 -07:00
per1234
71e1e800be Add CI workflow to check for Prettier formatting compliance
On every push and pull request that affects relevant files, check whether the formatting of supported
files is compliant with the Prettier style.
2021-05-07 04:49:09 -07:00
per1234
d65ce984a5 Use Task to run formatting operation
The project uses Task as the runner for all common development processes.
2021-05-07 04:49:09 -07:00
per1234
c1b58238d5 Bring all files into Prettier formatting compliance 2021-05-07 04:49:09 -07:00
per1234
80db48c0ab Configure formatting check CI workflow to not convert EOL
GitHub Actions has the annoying behavior of converting LF to CRLF when checking out on the Windows runner. This caused
the formatting check to fail because Prettier now mandates Unix-style EOL.
2021-05-07 03:20:12 -07:00
per1234
6d4f58adcf Change project name to "arduino/setup-task"
Change project name to "arduino/setup-task"

The Task documentation consistently refers to the tool as "Task". Taskfile is the term used for Task's configuration file.
This action is setting up the Task tool, not setting up the Task configuration file, so "arduino/setup-task" is more
appropriate than "arduino/setup-taskfile".
2021-05-07 02:49:21 -07:00
per1234
f08b86a4a9 Add CI workflow to check Markdown files for problems
On every push and pull request that affects relevant files, and periodically, check the repository's Markdown files for
problems:

- Use markdownlint to check for common problems and formatting.
- Use markdown-link-check to check for broken links.

Arduino's Markdown style is defined by the `.markdownlint.yml` file.

In the event the repository contains externally maintained Markdown files, markdownlint can be configured to ignore them
via a `.markdownlintignore` file:
https://github.com/igorshubovych/markdownlint-cli#ignoring-files

markdown-link-check is configured via the `.markdown-link-check.json` file:
https://github.com/tcort/markdown-link-check#config-file-format
2021-05-07 02:38:53 -07:00
per1234
01b012911e Add CI workflow to validate tsconfig.json files
On every push or pull request that affects the repository's TypeScript configuration files, and periodically, validate them
against their JSON schema.
2021-05-07 02:34:13 -07:00
per1234
cd28dfb20b Correct repository URL for package.json schema 2021-05-07 02:33:25 -07:00
per1234
a410cf2f83 Reduce verbosity of action metadata check CI
There was some useless output that made it more difficult to see the important information.
2021-05-07 02:27:50 -07:00
per1234
b8320a6fc5 Use Task for building and testing
Since this is the arduino/setup-task action, it only makes sense to use Task for everything.
2021-05-07 02:27:50 -07:00
per1234
884c4e8bb5 Add CI workflow to lint TypeScript and JavaScript code
On every push and pull request that affects relevant files, and periodically, run eslint on the repository's TypeScript
and JavaScript files.

eslint is configured via the .eslintrc.yml file:
https://eslint.org/docs/user-guide/configuring/configuration-files
2021-05-06 23:54:56 -07:00
per1234
c26a23ae0d Merge pull request #15 from per1234/configure-dependabot
Configure dependabot for npm updates
2021-05-06 05:59:42 -07:00
per1234
b638bbc8c2 Merge pull request #16 from per1234/always-pack
Change development policy to repackaging on every code change
2021-05-06 05:59:26 -07:00
per1234
8502be65ff Add CI workflow to check project's npm configuration
On every push and pull request that affects relevant files, and periodically:

- Validate package.json against its JSON schema.
- Check for forgotten manifest updates.
2021-05-05 23:14:37 -07:00
per1234
0ac78c31f7 Remove build step from integration tests
Building will now be done in the same commit as the changes to the source code, so doing it in the integration test
workflow is pointless, only making the CI slower and the maintenance burden greater.
2021-05-05 22:16:53 -07:00
per1234
e4d8ae4218 Add CI job to check for forgotten packaging
In order to allow beta testing, it is necessary to package the action after every change to the code. This is an easy
step to forget, so an automated check is necessary.
2021-05-05 22:16:53 -07:00
per1234
e567c92197 Merge pull request #14 from per1234/spell-check
Add CI workflow to check for commonly misspelled words
2021-05-05 15:05:26 -07:00