15
15
AWS_SECRET_ACCESS_KEY : ${{ secrets.AWS_SECRET_ACCESS_KEY }}
16
16
AWS_REGION : " us-east-1" # or https://github.com/aws/aws-cli/issues/5623
17
17
KEYCHAIN : " sign.keychain"
18
+ KEYCHAIN_PASSWORD : keychainpassword # Arbitrary password for a keychain that exists only for the duration of the job, so not secret
19
+ GON_CONFIG_PATH : gon.config.hcl
18
20
INSTALLER_CERT_MAC_PATH : " /tmp/ArduinoCerts2020.p12"
19
21
AC_USERNAME : ${{ secrets.AC_USERNAME }} # used by gon
20
22
AC_PASSWORD : ${{ secrets.AC_PASSWORD }} # used by gon
@@ -166,12 +168,22 @@ jobs:
166
168
167
169
- name : Import Code-Signing Certificates
168
170
run : |
169
- echo "${{ secrets.INSTALLER_CERT_MAC_P12 }}" | base64 --decode > ${{ env.INSTALLER_CERT_MAC_PATH }}
170
- security create-keychain -p ${{ secrets.KEYCHAIN_PASSWORD }} ${{ env.KEYCHAIN }}
171
- security default-keychain -s ${{ env.KEYCHAIN }}
172
- security unlock-keychain -p ${{ secrets.KEYCHAIN_PASSWORD }} ${{ env.KEYCHAIN }}
173
- security import ${{ env.INSTALLER_CERT_MAC_PATH }} -k ${{ env.KEYCHAIN }} -f pkcs12 -A -T /usr/bin/codesign -P ${{ secrets.INSTALLER_CERT_MAC_PASSWORD }}
174
- security set-key-partition-list -S apple-tool:,apple: -s -k ${{ secrets.KEYCHAIN_PASSWORD }} ${{ env.KEYCHAIN }}
171
+ echo "${{ secrets.INSTALLER_CERT_MAC_P12 }}" | base64 --decode > "${{ env.INSTALLER_CERT_MAC_PATH }}"
172
+ security create-keychain -p "${{ env.KEYCHAIN_PASSWORD }}" "${{ env.KEYCHAIN }}"
173
+ security default-keychain -s "${{ env.KEYCHAIN }}"
174
+ security unlock-keychain -p "${{ env.KEYCHAIN_PASSWORD }}" "${{ env.KEYCHAIN }}"
175
+ security import \
176
+ "${{ env.INSTALLER_CERT_MAC_PATH }}" \
177
+ -k "${{ env.KEYCHAIN }}" \
178
+ -f pkcs12 \
179
+ -A \
180
+ -T "/usr/bin/codesign" \
181
+ -P "${{ secrets.INSTALLER_CERT_MAC_PASSWORD }}"
182
+ security set-key-partition-list \
183
+ -S apple-tool:,apple: \
184
+ -s \
185
+ -k "${{ env.KEYCHAIN_PASSWORD }}" \
186
+ "${{ env.KEYCHAIN }}"
175
187
176
188
- name : Install gon for code signing and app notarization
177
189
run : |
@@ -181,25 +193,24 @@ jobs:
181
193
- name : Write gon config to file
182
194
# gon does not allow env variables in config file (https://github.com/mitchellh/gon/issues/20)
183
195
run : |
184
- cat > gon.config.hcl <<EOF
196
+ cat > "${{ env.GON_CONFIG_PATH }}" <<EOF
185
197
# See: https://github.com/mitchellh/gon#configuration-file
186
198
source = ["${{ env.PROJECT_NAME }}/${{ env.PROJECT_NAME }}"]
187
199
bundle_id = "cc.arduino.${{ env.PROJECT_NAME }}"
200
+
188
201
sign {
189
202
application_identity = "Developer ID Application: ARDUINO SA (7KT7ZWMCJT)"
190
203
}
204
+
191
205
# Ask Gon for zip output to force notarization process to take place.
192
206
# The CI will ignore the zip output, using the signed binary only.
193
207
zip {
194
208
output_path = "arduino-create-agent.zip"
195
209
}
196
210
EOF
197
211
198
- - name : Code sign and notarize app
199
- run : |
200
- echo "gon will notarize executable in arduino-create-agent/arduino-create-agent"
201
- gon -log-level=debug -log-json gon.config.hcl
202
- timeout-minutes : 30
212
+ - name : Sign and notarize binary
213
+ run : gon -log-level=debug -log-json "${{ env.GON_CONFIG_PATH }}"
203
214
204
215
# This step will overwrite the non signed mac artifact (arduino-create-agent-${{ env.RUNS_ON }})
205
216
- name : Upload artifact
@@ -376,12 +387,22 @@ jobs:
376
387
377
388
- name : Import Code-Signing Certificates
378
389
run : |
379
- echo "${{ secrets.INSTALLER_CERT_MAC_P12 }}" | base64 --decode > ${{ env.INSTALLER_CERT_MAC_PATH }}
380
- security create-keychain -p ${{ secrets.KEYCHAIN_PASSWORD }} ${{ env.KEYCHAIN }}
381
- security default-keychain -s ${{ env.KEYCHAIN }}
382
- security unlock-keychain -p ${{ secrets.KEYCHAIN_PASSWORD }} ${{ env.KEYCHAIN }}
383
- security import ${{ env.INSTALLER_CERT_MAC_PATH }} -k ${{ env.KEYCHAIN }} -f pkcs12 -A -T /usr/bin/codesign -P ${{ secrets.INSTALLER_CERT_MAC_PASSWORD }}
384
- security set-key-partition-list -S apple-tool:,apple: -s -k ${{ secrets.KEYCHAIN_PASSWORD }} ${{ env.KEYCHAIN }}
390
+ echo "${{ secrets.INSTALLER_CERT_MAC_P12 }}" | base64 --decode > "${{ env.INSTALLER_CERT_MAC_PATH }}"
391
+ security create-keychain -p "${{ env.KEYCHAIN_PASSWORD }}" "${{ env.KEYCHAIN }}"
392
+ security default-keychain -s "${{ env.KEYCHAIN }}"
393
+ security unlock-keychain -p "${{ env.KEYCHAIN_PASSWORD }}" "${{ env.KEYCHAIN }}"
394
+ security import \
395
+ "${{ env.INSTALLER_CERT_MAC_PATH }}" \
396
+ -k "${{ env.KEYCHAIN }}" \
397
+ -f pkcs12 \
398
+ -A \
399
+ -T "/usr/bin/codesign" \
400
+ -P "${{ secrets.INSTALLER_CERT_MAC_PASSWORD }}"
401
+ security set-key-partition-list \
402
+ -S apple-tool:,apple: \
403
+ -s \
404
+ -k "${{ env.KEYCHAIN_PASSWORD }}" \
405
+ "${{ env.KEYCHAIN }}"
385
406
386
407
- name : Install gon for code signing and app notarization
387
408
run : |
0 commit comments