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

Update continuous integration system #169

Merged
merged 10 commits into from
Apr 20, 2021
Merged

Update continuous integration system #169

merged 10 commits into from
Apr 20, 2021

Conversation

per1234
Copy link
Contributor

@per1234 per1234 commented Apr 19, 2021

This PR updates the CI system to 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 to uses: 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

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.


Fixes #168

per1234 added 10 commits April 19, 2021 01:32
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`
to `uses: foo/bar@v2.3.4`). When the action author has provided a major version ref, use that instead
(e.g., `uses: foo/bar@v2`). 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
Since the time the original badges were added, GitHub added support for referencing the workflows via file name in
addition to the previous approach of using the `name` value. This links to the specific workflow's runs, rather than a
search for the name which might return multiple results. It is also more lightweight in terms of syntax.
On every push, pull request, and periodically, run Arduino Lint to check for common problems not related to the project
code.
Run "Report Size Deltas" GitHub Actions workflow on every push event that modifies the workflow file.

This provides a basic "smoke test" on any changes to the workflow, which is more difficult to get from the other trigger
events..
The library.properties metadata file can have an impact on compilation, so the CI workflow should run when it's changed
in order to assist in validation of those changes.
This board uses a ublox NINA-W102 module, so the CI workflow should provide coverage for it.
This board uses a ublox NINA-W102 module, so the CI workflow should provide coverage for it.
Previously, due to the lack of a release, the development versions of the sketch compilation actions were used. Using
release versions provides a more stable CI system for the ArduinoCore-mbed project.

Use of the major version ref will cause the workflow to benefit from ongoing development to the actions up until such
time as a new major release of an action is made, at which 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: 	`arduino/compile-sketches@v2`).
The "Compile Examples" GitHub Actions workflow generates a matrix job for each board. The default job name is generated
from the job's matrix object. This contains the complete board data, which results in a long and somewhat cryptic job
name that can make the workflow run more difficult to interpret.

The only necessary information is the FQBN. A custom job name allows for only using this information in the job name.
…le not found

This event would indicate that the workflow was misconfigured. So it's a valuable notification.
@per1234 per1234 added the type: enhancement Proposed improvement label Apr 19, 2021
@per1234 per1234 requested a review from aentinger April 19, 2021 15:22
@github-actions
Copy link

Memory usage change @ e78329e

Board flash % RAM for global variables %
arduino:mbed_nano:nanorp2040connect 0 - 0 0.0 - 0.0 0 - 0 0.0 - 0.0
arduino:megaavr:uno2018:mode=on 0 - 0 0.0 - 0.0 0 - 0 0.0 - 0.0
arduino:samd:mkrvidor4000 0 - 0 0.0 - 0.0 0 - 0 0.0 - 0.0
arduino:samd:mkrwifi1010 0 - 0 0.0 - 0.0 0 - 0 0.0 - 0.0
arduino:samd:nano_33_iot 0 - 0 0.0 - 0.0 0 - 0 0.0 - 0.0
Click for full report table
Board examples/AP_SimpleWebServer
flash
% examples/AP_SimpleWebServer
RAM for global variables
% examples/ConnectNoEncryption
flash
% examples/ConnectNoEncryption
RAM for global variables
% examples/ConnectWithWEP
flash
% examples/ConnectWithWEP
RAM for global variables
% examples/ConnectWithWPA
flash
% examples/ConnectWithWPA
RAM for global variables
% examples/ConnectWithWPA2Enterprise
flash
% examples/ConnectWithWPA2Enterprise
RAM for global variables
% examples/ScanNetworks
flash
% examples/ScanNetworks
RAM for global variables
% examples/ScanNetworksAdvanced
flash
% examples/ScanNetworksAdvanced
RAM for global variables
% examples/SimpleWebServerWiFi
flash
% examples/SimpleWebServerWiFi
RAM for global variables
% examples/Tools/CheckFirmwareVersion
flash
% examples/Tools/CheckFirmwareVersion
RAM for global variables
% examples/Tools/FirmwareUpdater
flash
% examples/Tools/FirmwareUpdater
RAM for global variables
% examples/Tools/SerialNINAPassthrough
flash
% examples/Tools/SerialNINAPassthrough
RAM for global variables
% examples/WiFiChatServer
flash
% examples/WiFiChatServer
RAM for global variables
% examples/WiFiPing
flash
% examples/WiFiPing
RAM for global variables
% examples/WiFiSSLClient
flash
% examples/WiFiSSLClient
RAM for global variables
% examples/WiFiStorage
flash
% examples/WiFiStorage
RAM for global variables
% examples/WiFiUdpNtpClient
flash
% examples/WiFiUdpNtpClient
RAM for global variables
% examples/WiFiUdpSendReceiveString
flash
% examples/WiFiUdpSendReceiveString
RAM for global variables
% examples/WiFiWebClient
flash
% examples/WiFiWebClient
RAM for global variables
% examples/WiFiWebClientRepeating
flash
% examples/WiFiWebClientRepeating
RAM for global variables
% examples/WiFiWebServer
flash
% examples/WiFiWebServer
RAM for global variables
%
arduino:mbed_nano:nanorp2040connect 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0
arduino:megaavr:uno2018:mode=on 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0
arduino:samd:mkrvidor4000 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0
arduino:samd:mkrwifi1010 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0
arduino:samd:nano_33_iot 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0
Click for full report CSV
Board,examples/AP_SimpleWebServer<br>flash,%,examples/AP_SimpleWebServer<br>RAM for global variables,%,examples/ConnectNoEncryption<br>flash,%,examples/ConnectNoEncryption<br>RAM for global variables,%,examples/ConnectWithWEP<br>flash,%,examples/ConnectWithWEP<br>RAM for global variables,%,examples/ConnectWithWPA<br>flash,%,examples/ConnectWithWPA<br>RAM for global variables,%,examples/ConnectWithWPA2Enterprise<br>flash,%,examples/ConnectWithWPA2Enterprise<br>RAM for global variables,%,examples/ScanNetworks<br>flash,%,examples/ScanNetworks<br>RAM for global variables,%,examples/ScanNetworksAdvanced<br>flash,%,examples/ScanNetworksAdvanced<br>RAM for global variables,%,examples/SimpleWebServerWiFi<br>flash,%,examples/SimpleWebServerWiFi<br>RAM for global variables,%,examples/Tools/CheckFirmwareVersion<br>flash,%,examples/Tools/CheckFirmwareVersion<br>RAM for global variables,%,examples/Tools/FirmwareUpdater<br>flash,%,examples/Tools/FirmwareUpdater<br>RAM for global variables,%,examples/Tools/SerialNINAPassthrough<br>flash,%,examples/Tools/SerialNINAPassthrough<br>RAM for global variables,%,examples/WiFiChatServer<br>flash,%,examples/WiFiChatServer<br>RAM for global variables,%,examples/WiFiPing<br>flash,%,examples/WiFiPing<br>RAM for global variables,%,examples/WiFiSSLClient<br>flash,%,examples/WiFiSSLClient<br>RAM for global variables,%,examples/WiFiStorage<br>flash,%,examples/WiFiStorage<br>RAM for global variables,%,examples/WiFiUdpNtpClient<br>flash,%,examples/WiFiUdpNtpClient<br>RAM for global variables,%,examples/WiFiUdpSendReceiveString<br>flash,%,examples/WiFiUdpSendReceiveString<br>RAM for global variables,%,examples/WiFiWebClient<br>flash,%,examples/WiFiWebClient<br>RAM for global variables,%,examples/WiFiWebClientRepeating<br>flash,%,examples/WiFiWebClientRepeating<br>RAM for global variables,%,examples/WiFiWebServer<br>flash,%,examples/WiFiWebServer<br>RAM for global variables,%
arduino:mbed_nano:nanorp2040connect,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0
arduino:megaavr:uno2018:mode=on,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0
arduino:samd:mkrvidor4000,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0
arduino:samd:mkrwifi1010,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0
arduino:samd:nano_33_iot,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0

Copy link
Contributor

@aentinger aentinger left a comment

Choose a reason for hiding this comment

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

Thank you @per1234 🚀

@aentinger aentinger merged commit d57e172 into master Apr 20, 2021
@aentinger aentinger deleted the ci branch April 20, 2021 06:29
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
type: enhancement Proposed improvement
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Update GitHub Actions to latest available versions.
2 participants