Skip to content

Releases: arduino/report-size-deltas

1.1.0

24 Jan 23:31
b4d8c01
Compare
Choose a tag to compare

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

1.0.1

31 Mar 13:20
a22a921
Compare
Choose a tag to compare

Changelog

Bug Fix

  • Prevent unintended rendering of report content (#32)
  • Handle sketches reports with missing size data (#31)

Enhancement

Full Changeset

v1.0.0...v1.0.1

1.0.0

08 Apr 10:10
a4d9499
Compare
Choose a tag to compare

Migration guide for arduino/actions/libraries/report-size-deltas users

Action name change

With the move to this dedicated repository from its provisional home in the experimental repository, the action name has changed. This requires a change to workflows using the action.

Change:

uses: arduino/actions/libraries/report-size-deltas@master

to:

uses: arduino/report-size-deltas@v1

(BREAKING) Default workflow artifact name change

(#7) The default value of the size-deltas-reports-artifact-name input was changed from "size-deltas-reports" to "sketches-reports". If your workflow is relying on this default value it will be necessary to update the name input of the step in the sketch compilation workflow that uses the actions/upload-artifact action to upload the sketches report to a workflow artifact.

Change:

- uses: actions/upload-artifact@v2
  with:
    name: size-deltas-reports

to:

- uses: actions/upload-artifact@v2
  with:
    name: sketches-reports

Input name change

(#5) In light of the added support for consuming sketches reports from local path sources in addition to the original workflow artifact sources, the input name was changed from size-deltas-reports-artifact-name to the more appropriate sketches-reports-source.

The previous input name is still supported for backwards compatibility, so this is an optional update. However, the previous input name is now deprecated and use of it will result in a warning to that effect in the workflow run logs, so it is recommended to update any workflows that are using this input.

Change:

- uses: arduino/report-size-deltas@v1
  with:
    size-deltas-reports-artifact-name: sketches-reports

to:

- uses: arduino/report-size-deltas@v1
  with:
    sketches-reports-source: sketches-reports