Skip to content
Compare
Choose a tag to compare
@per1234 per1234 released this 24 Jan 23:31
· 27 commits to main since this release
b4d8c01

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)

Full Changeset

v1.0.1...v1.1.0

Contributors