Skip to content

Commit aa22d11

Browse files
committed
Generate v1 and v2 format test data artifacts
A significant change was made to the nature of GitHub Actions workflow artifacts starting from the 2.x release of the `@actions/artifact` package, which was introduced in the 4.0.0 release of the "actions/upload-artifact" GitHub Actions action. It is necessary to provide integration test coverage for compatibility of the "arduino/report-size-deltas" action with the v2 format artifacts produced by actions/upload-artifact@v4. It is also important to continue to cover compatibility with the v1 format artifacts produced by actions/upload-artifact@v3, to support users who have not gotten around to updating that action dependency in their sketch compilation workflows (especially since the breaking change introduced by actions/upload-artifact@v4 will make it necessary to adjust the configuration of the workflow). The chosen approach is to configure the "Upload test sketches report artifact" workflow to use actions/upload-artifact@v3 when upload one of the test data artifacts and actions/upload-artifact@v4 when uploading the other. Even though the produced test data would not occur under real world usage, it is the cleanest way (the alternative being to create and maintain separate copies of the system implemented in the `report-target-pr` branch for each major version of the actions/upload-artifact action) to provide effective integration test coverage.
1 parent e99610b commit aa22d11

File tree

1 file changed

+14
-1
lines changed

1 file changed

+14
-1
lines changed

.github/workflows/upload-report-artifact.yml

+14-1
Original file line numberDiff line numberDiff line change
@@ -22,9 +22,11 @@ jobs:
2222
parameters:
2323
# Coverage for pre-actions/upload-artifact@v4 approach where all reports are stored in a single artifact.
2424
- artifact-name-suffix: multi
25+
artifact-version: 1
2526
reports-folder: multi-report-artifact
2627
# Coverage for actions/upload-artifact@v4 approach where each report is stored in a separate artifact.
2728
- artifact-name-suffix: arduino-samd-mkrzero
29+
artifact-version: 2
2830
reports-folder: per-report-artifact
2931

3032
steps:
@@ -45,9 +47,20 @@ jobs:
4547
jq '.commit_hash = "${{ github.event.pull_request.head.sha }}"' "$reportFile" > "${SKETCHES_REPORTS_PATH}/$reportFile"
4648
done
4749
48-
- name: Save sketches report as workflow artifact
50+
- name: Save sketches report as v1 format workflow artifact
51+
if: matrix.parameters.artifact-version == '1'
52+
# actions/upload-artifact 3.x is the last version to produce v1 format artifacts:
53+
# https://github.com/actions/upload-artifact/blob/main/README.md#v4---whats-new
4954
uses: actions/upload-artifact@v3
5055
with:
5156
if-no-files-found: error
5257
path: ${{ env.SKETCHES_REPORTS_PATH }}
5358
name: ${{ env.ARTIFACT_NAME_PREFIX }}${{ matrix.parameters.artifact-name-suffix }}
59+
60+
- name: Save sketches report as v2 format workflow artifact
61+
if: matrix.parameters.artifact-version == '2'
62+
uses: actions/upload-artifact@v4
63+
with:
64+
if-no-files-found: error
65+
path: ${{ env.SKETCHES_REPORTS_PATH }}
66+
name: ${{ env.ARTIFACT_NAME_PREFIX }}${{ matrix.parameters.artifact-name-suffix }}

0 commit comments

Comments
 (0)