Skip to content

Commit 90566b1

Browse files
jochbruclaude
andcommitted
Sign and notarize macOS binaries via GoReleaser's quill integration
Uses the free cross-platform notarize.macos config (quill), which needs no Xcode/macOS runner and no GoReleaser Pro license. Reads the Developer ID Application cert, its password, and the App Store Connect API key/IDs from repo secrets, all wired into the release workflow's GoReleaser step. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
1 parent f003d3e commit 90566b1

2 files changed

Lines changed: 20 additions & 0 deletions

File tree

.github/workflows/release.yml

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -70,6 +70,11 @@ jobs:
7070
args: release --clean
7171
env:
7272
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
73+
MACOS_SIGN_P12: ${{ secrets.MACOS_SIGN_P12 }}
74+
MACOS_SIGN_PASSWORD: ${{ secrets.MACOS_SIGN_PASSWORD }}
75+
MACOS_NOTARY_ISSUER_ID: ${{ secrets.MACOS_NOTARY_ISSUER_ID }}
76+
MACOS_NOTARY_KEY_ID: ${{ secrets.MACOS_NOTARY_KEY_ID }}
77+
MACOS_NOTARY_KEY: ${{ secrets.MACOS_NOTARY_KEY }}
7378

7479
pages:
7580
needs: goreleaser

.goreleaser.yaml

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,21 @@ builds:
2323
ldflags:
2424
- -s -w -X github.com/pixelunioneu/immich-archiver/cmd.version={{.Version}}
2525

26+
notarize:
27+
macos:
28+
- enabled: '{{ isEnvSet "MACOS_SIGN_P12" }}'
29+
ids:
30+
- immich-archiver
31+
sign:
32+
certificate: "{{.Env.MACOS_SIGN_P12}}"
33+
password: "{{.Env.MACOS_SIGN_PASSWORD}}"
34+
notarize:
35+
issuer_id: "{{.Env.MACOS_NOTARY_ISSUER_ID}}"
36+
key_id: "{{.Env.MACOS_NOTARY_KEY_ID}}"
37+
key: "{{.Env.MACOS_NOTARY_KEY}}"
38+
wait: true
39+
timeout: 20m
40+
2641
archives:
2742
- id: immich-archiver
2843
formats: [binary]

0 commit comments

Comments
 (0)