8
8
DIST_DIR : dist
9
9
# The project's folder on Arduino's download server for uploading builds
10
10
AWS_PLUGIN_TARGET : /arduino-lint/
11
- ARTIFACT_NAME : dist
11
+ ARTIFACT_PREFIX : dist-
12
12
13
13
on :
14
14
push :
@@ -24,15 +24,24 @@ jobs:
24
24
strategy :
25
25
matrix :
26
26
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
36
45
37
46
steps :
38
47
- name : Checkout repository
42
51
43
52
- name : Create changelog
44
53
# Avoid creating the same changelog for each os
45
- if : matrix.os == 'Windows_32bit'
54
+ if : matrix.os.task == 'Windows_32bit'
46
55
uses : arduino/create-changelog@v1
47
56
with :
48
57
tag-regex : ' ^[0-9]+\.[0-9]+\.[0-9]+.*$'
@@ -57,17 +66,17 @@ jobs:
57
66
version : 3.x
58
67
59
68
- name : Build
60
- run : task dist:${{ matrix.os }}
69
+ run : task dist:${{ matrix.os.task }}
61
70
62
71
- name : Upload artifacts
63
72
uses : actions/upload-artifact@v4
64
73
with :
65
74
if-no-files-found : error
66
- name : ${{ env.ARTIFACT_NAME }}- ${{ matrix.os }}
75
+ name : ${{ env.ARTIFACT_PREFIX }}${{ matrix.os.artifact-suffix }}
67
76
path : ${{ env.DIST_DIR }}
68
77
69
78
notarize-macos :
70
- name : Notarize ${{ matrix.artifact.name }}
79
+ name : Notarize ${{ matrix.build.folder-suffix }}
71
80
runs-on : macos-latest
72
81
needs : create-release-artifacts
73
82
outputs :
@@ -81,20 +90,27 @@ jobs:
81
90
82
91
strategy :
83
92
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"
89
98
90
99
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
+
91
107
- name : Checkout repository
92
108
uses : actions/checkout@v4
93
109
94
110
- name : Download artifacts
95
111
uses : actions/download-artifact@v4
96
112
with :
97
- pattern : ${{ env.ARTIFACT_NAME }}- *
113
+ pattern : ${{ env.ARTIFACT_PREFIX }}*
98
114
merge-multiple : true
99
115
path : ${{ env.DIST_DIR }}
100
116
@@ -131,7 +147,7 @@ jobs:
131
147
run : |
132
148
cat > "${{ env.GON_CONFIG_PATH }}" <<EOF
133
149
# 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 }}"]
135
151
bundle_id = "cc.arduino.${{ env.PROJECT_NAME }}"
136
152
137
153
sign {
@@ -160,19 +176,16 @@ jobs:
160
176
run : |
161
177
# GitHub's upload/download-artifact actions don't preserve file permissions,
162
178
# 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 }}" \
168
182
-C ../../ LICENSE.txt
169
- echo "PACKAGE_FILENAME=$PACKAGE_FILENAME" >> $GITHUB_ENV
170
183
171
184
- name : Upload artifact
172
185
uses : actions/upload-artifact@v4
173
186
with :
174
187
if-no-files-found : error
175
- name : ${{ env.ARTIFACT_NAME }}- notarized-${{ matrix.artifact.name }}
188
+ name : ${{ env.ARTIFACT_PREFIX }}notarized-${{ matrix.build.folder-suffix }}
176
189
path : ${{ env.DIST_DIR }}/${{ env.PACKAGE_FILENAME }}
177
190
178
191
create-release :
@@ -185,7 +198,7 @@ jobs:
185
198
- name : Download artifact
186
199
uses : actions/download-artifact@v4
187
200
with :
188
- pattern : ${{ env.ARTIFACT_NAME }}- *
201
+ pattern : ${{ env.ARTIFACT_PREFIX }}*
189
202
merge-multiple : true
190
203
path : ${{ env.DIST_DIR }}
191
204
0 commit comments