88 DIST_DIR : dist
99 # The project's folder on Arduino's download server for uploading builds
1010 AWS_PLUGIN_TARGET : /arduino-lint/
11- ARTIFACT_NAME : dist
11+ ARTIFACT_PREFIX : dist-
1212
1313on :
1414 push :
@@ -24,15 +24,24 @@ jobs:
2424 strategy :
2525 matrix :
2626 os :
27- - Windows_32bit
28- - Windows_64bit
29- - Linux_32bit
30- - Linux_64bit
31- - Linux_ARMv6
32- - Linux_ARMv7
33- - Linux_ARM64
34- - macOS_64bit
35- - macOS_ARM64
27+ - task : Windows_32bit
28+ artifact-suffix : Windows_32bit
29+ - task : Windows_64bit
30+ artifact-suffix : Windows_64bit
31+ - task : Linux_32bit
32+ artifact-suffix : Linux_32bit
33+ - task : Linux_64bit
34+ artifact-suffix : Linux_64bit
35+ - task : Linux_ARMv6
36+ artifact-suffix : Linux_ARMv6
37+ - task : Linux_ARMv7
38+ artifact-suffix : Linux_ARMv7
39+ - task : Linux_ARM64
40+ artifact-suffix : Linux_ARM64
41+ - task : macOS_64bit
42+ artifact-suffix : macOS_64bit
43+ - task : macOS_ARM64
44+ artifact-suffix : macOS_ARM64
3645
3746 steps :
3847 - name : Checkout repository
4251
4352 - name : Create changelog
4453 # Avoid creating the same changelog for each os
45- if : matrix.os == 'Windows_32bit'
54+ if : matrix.os.task == 'Windows_32bit'
4655 uses : arduino/create-changelog@v1
4756 with :
4857 tag-regex : ' ^[0-9]+\.[0-9]+\.[0-9]+.*$'
@@ -57,17 +66,17 @@ jobs:
5766 version : 3.x
5867
5968 - name : Build
60- run : task dist:${{ matrix.os }}
69+ run : task dist:${{ matrix.os.task }}
6170
6271 - name : Upload artifacts
6372 uses : actions/upload-artifact@v4
6473 with :
6574 if-no-files-found : error
66- name : ${{ env.ARTIFACT_NAME }}- ${{ matrix.os }}
75+ name : ${{ env.ARTIFACT_PREFIX }}${{ matrix.os.artifact-suffix }}
6776 path : ${{ env.DIST_DIR }}
6877
6978 notarize-macos :
70- name : Notarize ${{ matrix.artifact.name }}
79+ name : Notarize ${{ matrix.build.folder-suffix }}
7180 runs-on : macos-latest
7281 needs : create-release-artifacts
7382 outputs :
@@ -81,20 +90,27 @@ jobs:
8190
8291 strategy :
8392 matrix :
84- artifact :
85- - name : darwin_amd64
86- path : " macOS_64bit.tar.gz"
87- - name : darwin_arm64
88- path : " macOS_ARM64.tar.gz"
93+ build :
94+ - folder-suffix : darwin_amd64
95+ package-suffix : " macOS_64bit.tar.gz"
96+ - folder-suffix : darwin_arm64
97+ package-suffix : " macOS_ARM64.tar.gz"
8998
9099 steps :
100+ - name : Set environment variables
101+ run : |
102+ # See: https://docs.github.com/actions/writing-workflows/choosing-what-your-workflow-does/workflow-commands-for-github-actions#setting-an-environment-variable
103+ echo "BUILD_FOLDER=${{ env.PROJECT_NAME }}_osx_${{ matrix.build.folder-suffix }}" >> "$GITHUB_ENV"
104+ TAG="${GITHUB_REF/refs\/tags\//}"
105+ echo "PACKAGE_FILENAME=${{ env.PROJECT_NAME }}_${TAG}_${{ matrix.build.package-suffix }}" >> $GITHUB_ENV
106+
91107 - name : Checkout repository
92108 uses : actions/checkout@v4
93109
94110 - name : Download artifacts
95111 uses : actions/download-artifact@v4
96112 with :
97- pattern : ${{ env.ARTIFACT_NAME }}- *
113+ pattern : ${{ env.ARTIFACT_PREFIX }}*
98114 merge-multiple : true
99115 path : ${{ env.DIST_DIR }}
100116
@@ -131,7 +147,7 @@ jobs:
131147 run : |
132148 cat > "${{ env.GON_CONFIG_PATH }}" <<EOF
133149 # See: https://github.com/Bearer/gon#configuration-file
134- source = ["${{ env.DIST_DIR }}/${{ env.PROJECT_NAME }}_osx_${{ matrix.artifact.name }}/${{ env.PROJECT_NAME }}"]
150+ source = ["${{ env.DIST_DIR }}/${{ env.BUILD_FOLDER }}/${{ env.PROJECT_NAME }}"]
135151 bundle_id = "cc.arduino.${{ env.PROJECT_NAME }}"
136152
137153 sign {
@@ -160,19 +176,16 @@ jobs:
160176 run : |
161177 # GitHub's upload/download-artifact actions don't preserve file permissions,
162178 # so we need to add execution permission back until the action is made to do this.
163- chmod +x "${{ env.PROJECT_NAME }}_osx_${{ matrix.artifact.name }}/${{ env.PROJECT_NAME }}"
164- TAG="${GITHUB_REF/refs\/tags\//}"
165- PACKAGE_FILENAME="${{ env.PROJECT_NAME }}_${TAG}_${{ matrix.artifact.path }}"
166- tar -czvf "$PACKAGE_FILENAME" \
167- -C "${{ env.PROJECT_NAME }}_osx_${{ matrix.artifact.name }}/" "${{ env.PROJECT_NAME }}" \
179+ chmod +x "${{ env.BUILD_FOLDER }}/${{ env.PROJECT_NAME }}"
180+ tar -czvf "${{ env.PACKAGE_FILENAME }}" \
181+ -C "${{ env.BUILD_FOLDER }}/" "${{ env.PROJECT_NAME }}" \
168182 -C ../../ LICENSE.txt
169- echo "PACKAGE_FILENAME=$PACKAGE_FILENAME" >> $GITHUB_ENV
170183
171184 - name : Upload artifact
172185 uses : actions/upload-artifact@v4
173186 with :
174187 if-no-files-found : error
175- name : ${{ env.ARTIFACT_NAME }}- notarized-${{ matrix.artifact.name }}
188+ name : ${{ env.ARTIFACT_PREFIX }}notarized-${{ matrix.build.folder-suffix }}
176189 path : ${{ env.DIST_DIR }}/${{ env.PACKAGE_FILENAME }}
177190
178191 create-release :
@@ -185,7 +198,7 @@ jobs:
185198 - name : Download artifact
186199 uses : actions/download-artifact@v4
187200 with :
188- pattern : ${{ env.ARTIFACT_NAME }}- *
201+ pattern : ${{ env.ARTIFACT_PREFIX }}*
189202 merge-multiple : true
190203 path : ${{ env.DIST_DIR }}
191204
0 commit comments