diff --git a/.github/workflows/publish-go-nightly-task.yml b/.github/workflows/publish-go-nightly-task.yml index e061698c..75203701 100644 --- a/.github/workflows/publish-go-nightly-task.yml +++ b/.github/workflows/publish-go-nightly-task.yml @@ -8,7 +8,7 @@ env: DIST_DIR: dist # The project's folder on Arduino's download server for uploading builds AWS_PLUGIN_TARGET: /arduino-lint/ - ARTIFACT_NAME: dist + ARTIFACT_PREFIX: dist- # See: https://docs.github.com/actions/using-workflows/events-that-trigger-workflows on: @@ -27,15 +27,24 @@ jobs: strategy: matrix: os: - - Windows_32bit - - Windows_64bit - - Linux_32bit - - Linux_64bit - - Linux_ARMv6 - - Linux_ARMv7 - - Linux_ARM64 - - macOS_64bit - - macOS_ARM64 + - task: Windows_32bit + artifact-suffix: Windows_32bit + - task: Windows_64bit + artifact-suffix: Windows_64bit + - task: Linux_32bit + artifact-suffix: Linux_32bit + - task: Linux_64bit + artifact-suffix: Linux_64bit + - task: Linux_ARMv6 + artifact-suffix: Linux_ARMv6 + - task: Linux_ARMv7 + artifact-suffix: Linux_ARMv7 + - task: Linux_ARM64 + artifact-suffix: Linux_ARM64 + - task: macOS_64bit + artifact-suffix: macOS_64bit + - task: macOS_ARM64 + artifact-suffix: macOS_ARM64 steps: - name: Checkout repository @@ -50,17 +59,17 @@ jobs: - name: Build env: NIGHTLY: true - run: task dist:${{ matrix.os }} + run: task dist:${{ matrix.os.task }} - name: Upload artifacts uses: actions/upload-artifact@v4 with: if-no-files-found: error - name: ${{ env.ARTIFACT_NAME }}-${{ matrix.os }} + name: ${{ env.ARTIFACT_PREFIX }}${{ matrix.os.artifact-suffix }} path: ${{ env.DIST_DIR }} notarize-macos: - name: Notarize ${{ matrix.artifact.name }} + name: Notarize ${{ matrix.build.folder-suffix }} runs-on: macos-latest needs: create-nightly-artifacts @@ -76,20 +85,25 @@ jobs: strategy: matrix: - artifact: - - name: darwin_amd64 - path: "macOS_64bit.tar.gz" - - name: darwin_arm64 - path: "macOS_ARM64.tar.gz" + build: + - folder-suffix: darwin_amd64 + package-suffix: "macOS_64bit.tar.gz" + - folder-suffix: darwin_arm64 + package-suffix: "macOS_ARM64.tar.gz" steps: + - name: Set environment variables + run: | + # See: https://docs.github.com/actions/writing-workflows/choosing-what-your-workflow-does/workflow-commands-for-github-actions#setting-an-environment-variable + echo "BUILD_FOLDER=${{ env.PROJECT_NAME }}_osx_${{ matrix.build.folder-suffix }}" >> "$GITHUB_ENV" + - name: Checkout repository uses: actions/checkout@v4 - name: Download artifacts uses: actions/download-artifact@v4 with: - pattern: ${{ env.ARTIFACT_NAME }}-* + pattern: ${{ env.ARTIFACT_PREFIX }}* merge-multiple: true path: ${{ env.DIST_DIR }} @@ -126,7 +140,7 @@ jobs: run: | cat > "${{ env.GON_CONFIG_PATH }}" <> $GITHUB_ENV @@ -167,7 +181,7 @@ jobs: uses: actions/upload-artifact@v4 with: if-no-files-found: error - name: ${{ env.ARTIFACT_NAME }}-notarized-${{ matrix.artifact.name }} + name: ${{ env.ARTIFACT_PREFIX }}notarized-${{ matrix.build.folder-suffix }} path: ${{ env.DIST_DIR }}/${{ env.PACKAGE_FILENAME }} publish-nightly: @@ -179,7 +193,7 @@ jobs: - name: Download artifact uses: actions/download-artifact@v4 with: - pattern: ${{ env.ARTIFACT_NAME }}-* + pattern: ${{ env.ARTIFACT_PREFIX }}* merge-multiple: true path: ${{ env.DIST_DIR }} diff --git a/.github/workflows/publish-go-tester-task.yml b/.github/workflows/publish-go-tester-task.yml index 9b57d04d..5842ed10 100644 --- a/.github/workflows/publish-go-tester-task.yml +++ b/.github/workflows/publish-go-tester-task.yml @@ -75,7 +75,7 @@ jobs: build: needs: package-name-prefix - name: Build ${{ matrix.os.name }} + name: Build ${{ matrix.os.artifact-name }} runs-on: ubuntu-latest permissions: contents: read @@ -85,31 +85,31 @@ jobs: os: - task: Windows_32bit path: "*Windows_32bit.zip" - name: Windows_X86-32 + artifact-name: Windows_X86-32 - task: Windows_64bit path: "*Windows_64bit.zip" - name: Windows_X86-64 + artifact-name: Windows_X86-64 - task: Linux_32bit path: "*Linux_32bit.tar.gz" - name: Linux_X86-32 + artifact-name: Linux_X86-32 - task: Linux_64bit path: "*Linux_64bit.tar.gz" - name: Linux_X86-64 + artifact-name: Linux_X86-64 - task: Linux_ARMv6 path: "*Linux_ARMv6.tar.gz" - name: Linux_ARMv6 + artifact-name: Linux_ARMv6 - task: Linux_ARMv7 path: "*Linux_ARMv7.tar.gz" - name: Linux_ARMv7 + artifact-name: Linux_ARMv7 - task: Linux_ARM64 path: "*Linux_ARM64.tar.gz" - name: Linux_ARM64 + artifact-name: Linux_ARM64 - task: macOS_64bit path: "*macOS_64bit.tar.gz" - name: macOS_64 + artifact-name: macOS_64 - task: macOS_ARM64 path: "*macOS_ARM64.tar.gz" - name: macOS_ARM64 + artifact-name: macOS_ARM64 steps: - name: Checkout repository @@ -132,7 +132,7 @@ jobs: uses: actions/upload-artifact@v4 with: path: ${{ env.DIST_DIR }}/${{ matrix.os.path }} - name: ${{ matrix.os.name }} + name: ${{ matrix.os.artifact-name }} checksums: needs: diff --git a/.github/workflows/release-go-task.yml b/.github/workflows/release-go-task.yml index 751ab682..1a0733a9 100644 --- a/.github/workflows/release-go-task.yml +++ b/.github/workflows/release-go-task.yml @@ -8,7 +8,7 @@ env: DIST_DIR: dist # The project's folder on Arduino's download server for uploading builds AWS_PLUGIN_TARGET: /arduino-lint/ - ARTIFACT_NAME: dist + ARTIFACT_PREFIX: dist- on: push: @@ -24,15 +24,24 @@ jobs: strategy: matrix: os: - - Windows_32bit - - Windows_64bit - - Linux_32bit - - Linux_64bit - - Linux_ARMv6 - - Linux_ARMv7 - - Linux_ARM64 - - macOS_64bit - - macOS_ARM64 + - task: Windows_32bit + artifact-suffix: Windows_32bit + - task: Windows_64bit + artifact-suffix: Windows_64bit + - task: Linux_32bit + artifact-suffix: Linux_32bit + - task: Linux_64bit + artifact-suffix: Linux_64bit + - task: Linux_ARMv6 + artifact-suffix: Linux_ARMv6 + - task: Linux_ARMv7 + artifact-suffix: Linux_ARMv7 + - task: Linux_ARM64 + artifact-suffix: Linux_ARM64 + - task: macOS_64bit + artifact-suffix: macOS_64bit + - task: macOS_ARM64 + artifact-suffix: macOS_ARM64 steps: - name: Checkout repository @@ -42,7 +51,7 @@ jobs: - name: Create changelog # Avoid creating the same changelog for each os - if: matrix.os == 'Windows_32bit' + if: matrix.os.task == 'Windows_32bit' uses: arduino/create-changelog@v1 with: tag-regex: '^[0-9]+\.[0-9]+\.[0-9]+.*$' @@ -57,17 +66,17 @@ jobs: version: 3.x - name: Build - run: task dist:${{ matrix.os }} + run: task dist:${{ matrix.os.task }} - name: Upload artifacts uses: actions/upload-artifact@v4 with: if-no-files-found: error - name: ${{ env.ARTIFACT_NAME }}-${{ matrix.os }} + name: ${{ env.ARTIFACT_PREFIX }}${{ matrix.os.artifact-suffix }} path: ${{ env.DIST_DIR }} notarize-macos: - name: Notarize ${{ matrix.artifact.name }} + name: Notarize ${{ matrix.build.folder-suffix }} runs-on: macos-latest needs: create-release-artifacts outputs: @@ -81,20 +90,27 @@ jobs: strategy: matrix: - artifact: - - name: darwin_amd64 - path: "macOS_64bit.tar.gz" - - name: darwin_arm64 - path: "macOS_ARM64.tar.gz" + build: + - folder-suffix: darwin_amd64 + package-suffix: "macOS_64bit.tar.gz" + - folder-suffix: darwin_arm64 + package-suffix: "macOS_ARM64.tar.gz" steps: + - name: Set environment variables + run: | + # See: https://docs.github.com/actions/writing-workflows/choosing-what-your-workflow-does/workflow-commands-for-github-actions#setting-an-environment-variable + echo "BUILD_FOLDER=${{ env.PROJECT_NAME }}_osx_${{ matrix.build.folder-suffix }}" >> "$GITHUB_ENV" + TAG="${GITHUB_REF/refs\/tags\//}" + echo "PACKAGE_FILENAME=${{ env.PROJECT_NAME }}_${TAG}_${{ matrix.build.package-suffix }}" >> $GITHUB_ENV + - name: Checkout repository uses: actions/checkout@v4 - name: Download artifacts uses: actions/download-artifact@v4 with: - pattern: ${{ env.ARTIFACT_NAME }}-* + pattern: ${{ env.ARTIFACT_PREFIX }}* merge-multiple: true path: ${{ env.DIST_DIR }} @@ -131,7 +147,7 @@ jobs: run: | cat > "${{ env.GON_CONFIG_PATH }}" <> $GITHUB_ENV - name: Upload artifact uses: actions/upload-artifact@v4 with: if-no-files-found: error - name: ${{ env.ARTIFACT_NAME }}-notarized-${{ matrix.artifact.name }} + name: ${{ env.ARTIFACT_PREFIX }}notarized-${{ matrix.build.folder-suffix }} path: ${{ env.DIST_DIR }}/${{ env.PACKAGE_FILENAME }} create-release: @@ -185,7 +198,7 @@ jobs: - name: Download artifact uses: actions/download-artifact@v4 with: - pattern: ${{ env.ARTIFACT_NAME }}-* + pattern: ${{ env.ARTIFACT_PREFIX }}* merge-multiple: true path: ${{ env.DIST_DIR }}