Overview
This release provides compatibility with the v2 format workflow artifacts produced by the recently released version 4.x of the actions/upload-artifact GitHub Actions action.
Two different changes in the behavior of the artifacts generated by the new version of the action resulted in incompatibilities with the arduino/report-size-deltas action, which are resolved by this release:
Multiple Uploads to Artifact Not Allowed
It is common to use a job matrix to compile a set of sketches for an array of boards. The sketches report because the
Previously, the sketches report files from those jobs could be transferred to the arduino/report-size-deltas action via a single workflow artifact since the actions/upload-artifact action allowed uploading multiple times to a single workflow artifact.
Uploading multiple times to a single artifact is now prohibited. This means it is necessary for each of the sketch compilation matrix jobs to produce a separate artifact.
Size deltas report workflow triggered by schedule
event
In the use case where the action runs from a workflow triggered by a schedule
event, the arduino/report-size-deltas action downloads the workflow artifact containing the sketches report file directly.
Previously, the action's sketches-reports-source
input was used to define the exact name of the single artifact that contained all the sketches reports. The input now defines a regular expression, which allows it to match multiple artifact names.
Migration
As long as the names of the sketches report artifacts contain the string set via the sketches-reports-source
input (which defaults to sketches-reports
), the artifacts will be recognized by the action as before and it will not be necessary to make any changes to the size deltas report workflow.
Some adjustment of the sketch compilation workflow will be needed when updating to version 4.x of the actions/upload-artifact action in order to accommodate the breaking change in that action. An example workflow demonstrating the necessary configuration is available here.
Workflow triggered by pull_request
event
In the use case where the action runs from a workflow triggered by a pull_request
event, the action does not interact directly with workflow artifacts and so the changes to the artifact format does not affect the action. In this use case, the action's sketches-reports-source
input is used to define the path to a folder that contains sketches report files.
Migration
Although no changes to the configuration of the action's step are necessary, artifacts are often still used in other steps of the workflow in order to transfer sketches report files between jobs. In this case, some adjustment of the workflow may be needed when updating to version 4.x of the actions/upload-artifact action in order to accommodate the breaking change in that action. An example workflow demonstrating the necessary configuration is available here.
Action Runs Fail With "HTTP Error 403: ...
" Error
Previously, if the action was ran in a repository that contained a v2 format sketches report artifact as generated by version 4.x of the actions/upload-artifact action, the action would fail:
WARNING:__main__:Temporarily unable to open URL (HTTP Error 403: Server failed to authenticate the request. Make sure the value of Authorization header is formed correctly including the signature.), retrying
[...]
TimeoutError: Maximum number of URL load retries exceeded
The incompatibility is fixed by this release.
Migration
No changes are necessary.
Changelog
Bug Fix
- Add pattern matching support for sketches report artifact names (#78)
- Don't include HTTP headers from GitHub API request in redirected artifact download request (#83)
Enhancement
- Use Python 3.11.6 (#52)
- Use Poetry for Python development dependencies management (#60)
- Use f-strings instead of
str.format()
(#51) - Add type annotations (#53, #68)
- Use Black for python code formatting (#62)
- Adjust unit test infrastructure to facilitate running tests via IDEs (#65, #74)
- Use all recommended headers in GitHub API HTTP requests (#82)
- Demonstrate usage in multi-board coverage applications (#84)