Use GitHub Actions for continuous integration #9
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This PR provides the standardized GitHub Actions-based CI configuration for Arduino libraries.
Dependabot
Dependabot will periodically check the versions of all actions used in the repository's workflows. If any are found to be outdated, it will submit a pull request to update them.
NOTE: Dependabot's PRs will sometimes try to pin to the patch version of the action (e.g., updating
uses: foo/bar@v1
touses: foo/bar@v2.3.4
). When the action author has provided a major version ref, use that instead (e.g.,uses: foo/bar@v2
). Once the major version has been updated in the workflow, Dependabot should not submit an update PR again until the next major version bump. So even if the PRs from Dependabot are not always exactly correct, their value lies in bringing the maintainer's attention to the fact that the action version in use is outdated. Dependabot will automatically close its PR once the workflow has been updated.More information:
https://docs.github.com/en/github/administering-a-repository/keeping-your-actions-up-to-date-with-dependabot
Repository label management
On every push that changes relevant files, and periodically, use github-label-sync to configure the repository's issue/PR labels according to the universal, shared, and local label configuration files.
Spell check
On every push, pull request, and periodically, use the
codespell-project/actions-codespell
action to check for commonly misspelled words.In the event of a false positive, the problematic word should be added, in all lowercase, to the
ignore-words-list
field of./.codespellrc
. Regardless of the case of the word in the false positive, it must be in all lowercase in the ignore list. The ignore list is comma-separated with no spaces.Arduino Lint
On every push, pull request, and periodically, run Arduino Lint to check for common problems not related to the project code.
Compile examples
On every push or pull request that affects library source or example files, and periodically, use the
arduino/compile-sketches
action to compile all example sketches for the specified boards.Report size deltas
On creation or commit to a pull request, use the
arduino/report-size-deltas
action to comment a report of the resulting change in memory usage of the examples to the PR thread.NOTE: this version of the workflow is designed for use in private repositories, as explained here:
https://github.com/arduino/report-size-deltas#run-from-the-same-workflow-as-the-arduinocompile-sketches-action
Once the repository is made public, it must be replaced by these workflows:
The reason for this is the private repository version will fail on pull requests submitted from forks due to the automatic token permissions downgrade done by GitHub actions under those conditions for security purposes.
Notes
I have configured URLs in anticipation of the final home of the repository at
arduino-libraries/Braccio_v2_library
.Resolves #3