Skip to content

Commit 06fc10e

Browse files
committed
switch to gon fork, apple is deprecating altool to notarize.
I split the singing/notarization because Bearer fork does not implement `--deep` for signing
1 parent 9358518 commit 06fc10e

File tree

1 file changed

+35
-13
lines changed

1 file changed

+35
-13
lines changed

.github/workflows/release.yml

+35-13
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@ env:
2020
INSTALLER_CERT_MAC_PATH: "/tmp/ArduinoCerts2020.p12"
2121
AC_USERNAME: ${{ secrets.AC_USERNAME }} # used by gon
2222
AC_PASSWORD: ${{ secrets.AC_PASSWORD }} # used by gon
23+
AC_PROVIDER: ${{ secrets.AC_PROVIDER }} # used by gon
2324
# See: https://github.com/actions/setup-go/tree/v3#readme
2425
GO_VERSION: "1.20"
2526

@@ -261,7 +262,7 @@ jobs:
261262
-k "${{ env.KEYCHAIN_PASSWORD }}" \
262263
"${{ env.KEYCHAIN }}"
263264
264-
- name: Install gon for code signing and app notarization
265+
- name: Install gon for code signing
265266
uses: actions/checkout@v4
266267
with:
267268
repository: darkvertex/gon #this fork has support for --deep notarization
@@ -288,16 +289,41 @@ jobs:
288289
deep = true
289290
}
290291
291-
# Ask Gon for zip output to force notarization process to take place.
292-
# The CI will upload the zip output
293-
zip {
294-
output_path = "ArduinoCreateAgent.app_${{ matrix.arch }}_notarized.zip"
295-
}
296292
EOF
297293
298-
- name: Sign and notarize binary
294+
- name: Sign app bundle
299295
run: gon -log-level=debug -log-json "${{ env.GON_CONFIG_PATH }}"
300296

297+
- name: Zip output app bundle
298+
run: zip ArduinoCreateAgent.app_${{ matrix.arch }}_notarized.zip ArduinoCreateAgent.app
299+
300+
- name: Remove gon used for code signing
301+
run: |
302+
rm /usr/local/bin/gon
303+
rm ${{ env.GON_CONFIG_PATH }}
304+
305+
- name: Install gon for app notarization
306+
run: |
307+
wget -q https://github.com/Bearer/gon/releases/download/v0.0.27/gon_macos.zip
308+
unzip gon_macos.zip -d /usr/local/bin
309+
310+
- name: Write gon config to file
311+
run: |
312+
cat > "${{ env.GON_CONFIG_PATH }}" <<EOF
313+
# See: https://github.com/Bearer/gon#configuration-file
314+
315+
notarize {
316+
path = "ArduinoCreateAgent.app_${{ matrix.arch }}_notarized.zip"
317+
bundle_id = "cc.arduino.${{ env.PROJECT_NAME }}"
318+
staple = true
319+
}
320+
321+
EOF
322+
323+
- name: Notarize app bundle
324+
run: |
325+
gon -log-level=debug -log-json "${{ env.GON_CONFIG_PATH }}"
326+
301327
- name: Upload autoupdate bundle to Arduino downloads servers
302328
run: aws s3 cp ArduinoCreateAgent.app_${{ matrix.arch }}_notarized.zip s3://${{ secrets.DOWNLOADS_BUCKET }}${{ env.TARGET }}${GITHUB_REF/refs\/tags\//}/ # the version should be created in th the build job
303329
if: ${{ needs.build.outputs.prerelease != 'true' }}
@@ -475,7 +501,7 @@ jobs:
475501
476502
- name: Install gon for code signing and app notarization
477503
run: |
478-
wget -q https://github.com/mitchellh/gon/releases/download/v0.2.5/gon_macos.zip
504+
wget -q https://github.com/Bearer/gon/releases/download/v0.0.27/gon_macos.zip
479505
unzip gon_macos.zip -d /usr/local/bin
480506
481507
- name: Write gon config to file
@@ -490,17 +516,13 @@ jobs:
490516
}
491517
492518
# Ask Gon for zip output to force notarization process to take place.
493-
# The CI will not upload the zip output
494519
zip {
495520
output_path = "ArduinoCreateAgent.app_${{ matrix.arch }}_notarized.zip"
496521
}
497522
EOF
498523
499524
- name: Code sign and notarize app
500-
run: |
501-
echo "gon will notarize executable in ArduinoCreateAgent-osx/ArduinoCreateAgent-${GITHUB_REF##*/}-osx-${{ matrix.arch }}-installer.dmg"
502-
gon -log-level=debug -log-json gon.config_installer.hcl
503-
timeout-minutes: 30
525+
run: gon -log-level=debug -log-json gon.config_installer.hcl
504526

505527
# tar dmg file to keep executable permission
506528
- name: Tar files to keep permissions

0 commit comments

Comments
 (0)