From 8453d96677b359c0a383bd8906fd0d1caf1f8d76 Mon Sep 17 00:00:00 2001 From: Cristian Maglie Date: Tue, 30 Jul 2024 20:52:03 +0200 Subject: [PATCH 1/9] Updated check-go-dependency workflow In this case we should be fine since there is just one job that uploads the artifacts. --- .github/workflows/check-go-dependencies-task.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/check-go-dependencies-task.yml b/.github/workflows/check-go-dependencies-task.yml index eab16eb6172..ad4d5b3ab88 100644 --- a/.github/workflows/check-go-dependencies-task.yml +++ b/.github/workflows/check-go-dependencies-task.yml @@ -102,7 +102,7 @@ jobs: # Some might find it convenient to have CI generate the cache rather than setting up for it locally - name: Upload cache to workflow artifact if: failure() && steps.diff.outcome == 'failure' - uses: actions/upload-artifact@v3 + uses: actions/upload-artifact@v4 with: if-no-files-found: error name: dep-licenses-cache From 1df34f2fdb8f57370238d4bcc7959ae8531c402d Mon Sep 17 00:00:00 2001 From: Cristian Maglie Date: Tue, 30 Jul 2024 20:55:57 +0200 Subject: [PATCH 2/9] Updated publish-go-tester workflow In this case the uploaded artifacts uses different paths and names, there should be no breaking changes. --- .github/workflows/publish-go-tester-task.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/publish-go-tester-task.yml b/.github/workflows/publish-go-tester-task.yml index c83f00957d8..6f26162096c 100644 --- a/.github/workflows/publish-go-tester-task.yml +++ b/.github/workflows/publish-go-tester-task.yml @@ -135,7 +135,7 @@ jobs: # Transfer builds to artifacts job - name: Upload build artifact - uses: actions/upload-artifact@v3 + uses: actions/upload-artifact@v4 with: path: ${{ env.DIST_DIR }}/${{ matrix.artifact.path }} name: ${{ matrix.artifact.name }} @@ -148,7 +148,7 @@ jobs: steps: - name: Download build artifacts - uses: actions/download-artifact@v3 + uses: actions/download-artifact@v4 - name: Output checksum run: | TAG="${{ needs.package-name-prefix.outputs.prefix }}git-snapshot" @@ -162,7 +162,7 @@ jobs: done - name: Upload checksum artifact - uses: actions/upload-artifact@v3 + uses: actions/upload-artifact@v4 with: path: ./*checksums.txt name: checksums From 880122dddacf8b47d19cd56f5efb056aeec97458 Mon Sep 17 00:00:00 2001 From: Cristian Maglie Date: Tue, 30 Jul 2024 21:12:39 +0200 Subject: [PATCH 3/9] Updated publish-go-nightly job In this case the jobs exploited the previous action behaviour when uploading multiple artifacts under the same "name". To upgrade to v4 we need to upload artifacts with unique "name" and merge them when downloading using the "pattern" property. --- .github/workflows/publish-go-nightly-task.yml | 27 ++++++++++--------- 1 file changed, 15 insertions(+), 12 deletions(-) diff --git a/.github/workflows/publish-go-nightly-task.yml b/.github/workflows/publish-go-nightly-task.yml index d42fac2d954..d09a25868d4 100644 --- a/.github/workflows/publish-go-nightly-task.yml +++ b/.github/workflows/publish-go-nightly-task.yml @@ -65,10 +65,10 @@ jobs: run: echo "version=$(task general:get-version)" >> $GITHUB_OUTPUT - name: Upload artifacts - uses: actions/upload-artifact@v3 + uses: actions/upload-artifact@v4 with: if-no-files-found: error - name: ${{ env.ARTIFACT_NAME }} + name: ${{ env.ARTIFACT_NAME }}-${{ matrix.os }} path: ${{ env.DIST_DIR }} notarize-macos: @@ -92,9 +92,10 @@ jobs: uses: actions/checkout@v4 - name: Download artifacts - uses: actions/download-artifact@v3 + uses: actions/download-artifact@v4 with: - name: ${{ env.ARTIFACT_NAME }} + pattern: ${{ env.ARTIFACT_NAME }}-* + merge-multiple: true path: ${{ env.DIST_DIR }} - name: Import Code-Signing Certificates @@ -167,10 +168,10 @@ jobs: echo "PACKAGE_FILENAME=$PACKAGE_FILENAME" >> $GITHUB_ENV - name: Upload artifact - uses: actions/upload-artifact@v3 + uses: actions/upload-artifact@v4 with: if-no-files-found: error - name: ${{ env.ARTIFACT_NAME }} + name: ${{ env.ARTIFACT_NAME }}-notarized-${{ matrix.artifact.name }} path: ${{ env.DIST_DIR }}/${{ env.PACKAGE_FILENAME }} create-windows-installer: @@ -192,9 +193,10 @@ jobs: uses: actions/checkout@v4 - name: Download artifacts - uses: actions/download-artifact@v3 + uses: actions/download-artifact@v4 with: - name: ${{ env.ARTIFACT_NAME }} + pattern: ${{ env.ARTIFACT_NAME }}-* + merge-multiple: true path: ${{ env.DIST_DIR }} - name: Prepare PATH @@ -222,12 +224,12 @@ jobs: "${{ env.SIGNTOOL_PATH }}" sign -d "Arduino CLI" -f ${{ env.INSTALLER_CERT_WINDOWS_CER}} -csp "eToken Base Cryptographic Provider" -k "[{{${{ env.CERT_PASSWORD }}}}]=${{ env.CONTAINER_NAME }}" -fd sha256 -tr http://timestamp.digicert.com -td SHA256 -v "${{ env.MSI_FILE }}" - name: Upload artifacts - uses: actions/upload-artifact@v3 + uses: actions/upload-artifact@v4 env: MSI_FILE: ${{ steps.buildmsi.outputs.msi }} with: if-no-files-found: error - name: ${{ env.ARTIFACT_NAME }} + name: ${{ env.ARTIFACT_NAME }}-windows-installer path: ${{ env.MSI_FILE }} publish-nightly: @@ -246,9 +248,10 @@ jobs: uses: actions/checkout@v4 - name: Download artifact - uses: actions/download-artifact@v3 + uses: actions/download-artifact@v4 with: - name: ${{ env.ARTIFACT_NAME }} + pattern: ${{ env.ARTIFACT_NAME }}-* + merge-multiple: true path: ${{ env.DIST_DIR }} - name: Install Task From 3b61c2eb5c3469e0edd4e56ebb52961f14570ee7 Mon Sep 17 00:00:00 2001 From: Cristian Maglie Date: Tue, 30 Jul 2024 22:55:14 +0200 Subject: [PATCH 4/9] Updated release-go job This job got the same changes made in the publish-go-nightly job. --- .github/workflows/release-go-task.yml | 27 +++++++++++++++------------ 1 file changed, 15 insertions(+), 12 deletions(-) diff --git a/.github/workflows/release-go-task.yml b/.github/workflows/release-go-task.yml index b6289912b14..6887d940bfc 100644 --- a/.github/workflows/release-go-task.yml +++ b/.github/workflows/release-go-task.yml @@ -65,10 +65,10 @@ jobs: run: echo "version=$(task general:get-version)" >> $GITHUB_OUTPUT - name: Upload artifacts - uses: actions/upload-artifact@v3 + uses: actions/upload-artifact@v4 with: if-no-files-found: error - name: ${{ env.ARTIFACT_NAME }} + name: ${{ env.ARTIFACT_NAME }}-${{ matrix.os }} path: ${{ env.DIST_DIR }} notarize-macos: @@ -92,9 +92,10 @@ jobs: uses: actions/checkout@v4 - name: Download artifacts - uses: actions/download-artifact@v3 + uses: actions/download-artifact@v4 with: - name: ${{ env.ARTIFACT_NAME }} + pattern: ${{ env.ARTIFACT_NAME }}-* + merge-multiple: true path: ${{ env.DIST_DIR }} - name: Import Code-Signing Certificates @@ -167,10 +168,10 @@ jobs: echo "PACKAGE_FILENAME=$PACKAGE_FILENAME" >> $GITHUB_ENV - name: Upload artifact - uses: actions/upload-artifact@v3 + uses: actions/upload-artifact@v4 with: if-no-files-found: error - name: ${{ env.ARTIFACT_NAME }} + name: ${{ env.ARTIFACT_NAME }}-notarized-${{ matrix.artifact.name }} path: ${{ env.DIST_DIR }}/${{ env.PACKAGE_FILENAME }} create-windows-installer: @@ -192,9 +193,10 @@ jobs: uses: actions/checkout@v4 - name: Download artifacts - uses: actions/download-artifact@v3 + uses: actions/download-artifact@v4 with: - name: ${{ env.ARTIFACT_NAME }} + pattern: ${{ env.ARTIFACT_NAME }}-* + merge-multiple: true path: ${{ env.DIST_DIR }} - name: Prepare PATH @@ -222,12 +224,12 @@ jobs: "${{ env.SIGNTOOL_PATH }}" sign -d "Arduino CLI" -f ${{ env.INSTALLER_CERT_WINDOWS_CER}} -csp "eToken Base Cryptographic Provider" -k "[{{${{ env.CERT_PASSWORD }}}}]=${{ env.CONTAINER_NAME }}" -fd sha256 -tr http://timestamp.digicert.com -td SHA256 -v "${{ env.MSI_FILE }}" - name: Upload artifacts - uses: actions/upload-artifact@v3 + uses: actions/upload-artifact@v4 env: MSI_FILE: ${{ steps.buildmsi.outputs.msi }} with: if-no-files-found: error - name: ${{ env.ARTIFACT_NAME }} + name: ${{ env.ARTIFACT_NAME }}-windows-installer path: ${{ env.MSI_FILE }} create-release: @@ -246,9 +248,10 @@ jobs: uses: actions/checkout@v4 - name: Download artifact - uses: actions/download-artifact@v3 + uses: actions/download-artifact@v4 with: - name: ${{ env.ARTIFACT_NAME }} + pattern: ${{ env.ARTIFACT_NAME }}-* + merge-multiple: true path: ${{ env.DIST_DIR }} - name: Install Task From e88803279b0807549b504755cfb81d3ae4b83175 Mon Sep 17 00:00:00 2001 From: Cristian Maglie Date: Tue, 30 Jul 2024 23:01:51 +0200 Subject: [PATCH 5/9] Updated sync-label job --- .github/workflows/sync-labels.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/sync-labels.yml b/.github/workflows/sync-labels.yml index 9ecf638e861..ca63a2399fd 100644 --- a/.github/workflows/sync-labels.yml +++ b/.github/workflows/sync-labels.yml @@ -71,7 +71,7 @@ jobs: file-url: https://raw.githubusercontent.com/arduino/tooling-project-assets/main/workflow-templates/assets/sync-labels/${{ matrix.filename }} - name: Pass configuration files to next job via workflow artifact - uses: actions/upload-artifact@v3 + uses: actions/upload-artifact@v4 with: path: | *.yaml @@ -109,13 +109,13 @@ jobs: uses: actions/checkout@v4 - name: Download configuration files artifact - uses: actions/download-artifact@v3 + uses: actions/download-artifact@v4 with: name: ${{ env.CONFIGURATIONS_ARTIFACT }} path: ${{ env.CONFIGURATIONS_FOLDER }} - name: Remove unneeded artifact - uses: geekyeggo/delete-artifact@v2 + uses: geekyeggo/delete-artifact@v5 with: name: ${{ env.CONFIGURATIONS_ARTIFACT }} From 40fe0d1457f683e8a6d6047b3cb30e2dc3f55340 Mon Sep 17 00:00:00 2001 From: Cristian Maglie Date: Tue, 30 Jul 2024 23:05:37 +0200 Subject: [PATCH 6/9] Updated test-go job --- .github/workflows/test-go-task.yml | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/.github/workflows/test-go-task.yml b/.github/workflows/test-go-task.yml index 17ce103a06d..e0301a15603 100644 --- a/.github/workflows/test-go-task.yml +++ b/.github/workflows/test-go-task.yml @@ -114,10 +114,10 @@ jobs: mv coverage_integration.txt coverage_integration_${{ matrix.operating-system }}_${{ matrix.tests }}.txt - name: Upload coverage data to workflow artifact - uses: actions/upload-artifact@v3 + uses: actions/upload-artifact@v4 with: if-no-files-found: error - name: ${{ env.COVERAGE_ARTIFACT }} + name: ${{ env.COVERAGE_ARTIFACT }}-test-integration-${{ matrix.operating-system }} path: | ./coverage_integration_*.txt @@ -157,10 +157,10 @@ jobs: - name: Upload coverage data to workflow artifact if: runner.os == 'Linux' - uses: actions/upload-artifact@v3 + uses: actions/upload-artifact@v4 with: if-no-files-found: error - name: ${{ env.COVERAGE_ARTIFACT }} + name: ${{ env.COVERAGE_ARTIFACT }}-test-${{ matrix.operating-system }} path: | ./coverage_unit.txt @@ -182,9 +182,10 @@ jobs: run: go install github.com/wadey/gocovmerge@b5bfa59 - name: Download coverage data artifact - uses: actions/download-artifact@v3 + uses: actions/download-artifact@v4 with: - name: ${{ env.COVERAGE_ARTIFACT }} + pattern: ${{ env.COVERAGE_ARTIFACT }}-* + merge-multiple: true - name: Merge all code coverage artifacts run: gocovmerge coverage*.txt > coverage.txt From aa6787629585f7e3be852e408f16f948696ade08 Mon Sep 17 00:00:00 2001 From: Cristian Maglie Date: Tue, 30 Jul 2024 23:06:00 +0200 Subject: [PATCH 7/9] Updated comments --- .github/workflows/publish-go-nightly-task.yml | 2 +- .github/workflows/release-go-task.yml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/publish-go-nightly-task.yml b/.github/workflows/publish-go-nightly-task.yml index d09a25868d4..ff45fd27fcf 100644 --- a/.github/workflows/publish-go-nightly-task.yml +++ b/.github/workflows/publish-go-nightly-task.yml @@ -157,7 +157,7 @@ jobs: working-directory: ${{ env.DIST_DIR }} # Repackage the signed binary replaced in place by Gon (ignoring the output zip file) run: | - # GitHub's upload/download-artifact@v2 actions don't preserve file permissions, + # GitHub's upload/download-artifact actions don't preserve file permissions, # so we need to add execution permission back until the action is made to do this. chmod +x "${{ env.PROJECT_NAME }}_osx_${{ matrix.artifact.name }}/${{ env.PROJECT_NAME }}" VERSION=${{ needs.create-nightly-artifacts.outputs.version }} diff --git a/.github/workflows/release-go-task.yml b/.github/workflows/release-go-task.yml index 6887d940bfc..d536c21cbc2 100644 --- a/.github/workflows/release-go-task.yml +++ b/.github/workflows/release-go-task.yml @@ -157,7 +157,7 @@ jobs: working-directory: ${{ env.DIST_DIR }} # Repackage the signed binary replaced in place by Gon (ignoring the output zip file) run: | - # GitHub's upload/download-artifact@v2 actions don't preserve file permissions, + # GitHub's upload/download-artifact actions don't preserve file permissions, # so we need to add execution permission back until the action is made to do this. chmod +x "${{ env.PROJECT_NAME }}_osx_${{ matrix.artifact.name }}/${{ env.PROJECT_NAME }}" TAG=${{ needs.create-release-artifacts.outputs.version }} From d160e6cf125a1ec63f15d36a6609b0c7c6e214d7 Mon Sep 17 00:00:00 2001 From: Cristian Maglie Date: Tue, 30 Jul 2024 23:30:29 +0200 Subject: [PATCH 8/9] Missed matrix run in sync-labels workflows. --- .github/workflows/sync-labels.yml | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/.github/workflows/sync-labels.yml b/.github/workflows/sync-labels.yml index ca63a2399fd..4af604b92a2 100644 --- a/.github/workflows/sync-labels.yml +++ b/.github/workflows/sync-labels.yml @@ -77,7 +77,7 @@ jobs: *.yaml *.yml if-no-files-found: error - name: ${{ env.CONFIGURATIONS_ARTIFACT }} + name: ${{ env.CONFIGURATIONS_ARTIFACT }}-${{ matrix.filename }} sync: needs: download @@ -111,7 +111,8 @@ jobs: - name: Download configuration files artifact uses: actions/download-artifact@v4 with: - name: ${{ env.CONFIGURATIONS_ARTIFACT }} + pattern: ${{ env.CONFIGURATIONS_ARTIFACT }}-* + merge-multiple: true path: ${{ env.CONFIGURATIONS_FOLDER }} - name: Remove unneeded artifact From 571a33a30ea67e08e136dbb8f9d035e29c8862fe Mon Sep 17 00:00:00 2001 From: Cristian Maglie Date: Tue, 30 Jul 2024 23:32:59 +0200 Subject: [PATCH 9/9] Missed double-matrix run in test-go workflow --- .github/workflows/test-go-task.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/test-go-task.yml b/.github/workflows/test-go-task.yml index e0301a15603..8f808744e3a 100644 --- a/.github/workflows/test-go-task.yml +++ b/.github/workflows/test-go-task.yml @@ -117,7 +117,7 @@ jobs: uses: actions/upload-artifact@v4 with: if-no-files-found: error - name: ${{ env.COVERAGE_ARTIFACT }}-test-integration-${{ matrix.operating-system }} + name: ${{ env.COVERAGE_ARTIFACT }}-test-integration-${{ matrix.operating-system }}-${{ matrix.tests }} path: | ./coverage_integration_*.txt