11name : Publish
22
3- on :
3+ on :
44 workflow_call :
55 workflow_dispatch : # For manually running release process to verify code-signing of artifacts
66
77permissions :
88 contents : write
99
1010jobs :
11- release-macos :
12- name : Publish macOS (electron-builder)
13- runs-on : macos-latest
11+ release :
12+ name : Publish ${{ matrix.platform }} (electron-builder)
13+ strategy :
14+ matrix :
15+ include :
16+ - os : macos-latest
17+ platform : macOS
18+ package-cmd : pnpm package:macos --publish onTagOrDraft
19+ artifact-name : Gitify-release-mac
20+ use-apple-notarization : true
21+ - os : windows-latest
22+ platform : Windows
23+ package-cmd : pnpm package:win --publish onTagOrDraft
24+ artifact-name : Gitify-release-win
25+ use-apple-notarization : false
26+ - os : ubuntu-latest
27+ platform : Linux
28+ package-cmd : pnpm package:linux --publish onTagOrDraft
29+ artifact-name : Gitify-release-linux
30+ use-apple-notarization : false
31+ runs-on : ${{ matrix.os }}
1432
1533 steps :
1634 - name : Checkout
17- uses : actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
35+ uses : actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
1836
19- - name : Setup pnpm
20- uses : pnpm/action-setup@41ff72655975bd51cab0327fa583b6e92b6d3061 # v4.2.0
21-
22- - name : Setup Node
23- uses : actions/setup-node@6044e13b5dc448c55e2357c09f80417699197238 # v6.2.0
24- with :
25- node-version-file : ' .nvmrc'
26- cache : ' pnpm'
27-
28- - run : pnpm install
29- - run : pnpm build
37+ - name : Setup Node.js
38+ uses : ./.github/actions/setup-node
39+
40+ - name : Build application
41+ run : pnpm build
3042 env :
3143 OAUTH_CLIENT_ID : ${{ secrets.OAUTH_CLIENT_ID }}
3244 OAUTH_CLIENT_SECRET : ${{ secrets.OAUTH_CLIENT_SECRET }}
33- - run : pnpm package:macos --publish onTagOrDraft
45+
46+ - name : Package and publish for ${{ matrix.platform }}
47+ run : ${{ matrix.package-cmd }}
3448 env :
49+ GH_TOKEN : ${{ secrets.GITHUB_TOKEN }}
50+ # For macOS
3551 APPLE_ID_USERNAME : ${{ secrets.APPLE_ID_USERNAME }}
3652 APPLE_ID_PASSWORD : ${{ secrets.APPLE_ID_PASSWORD }}
3753 APPLE_ID_TEAM_ID : ${{ secrets.APPLE_ID_TEAM_ID }}
3854 CSC_LINK : ${{ secrets.CSC_LINK }}
3955 CSC_KEY_PASSWORD : ${{ secrets.CSC_KEY_PASSWORD }}
40- GH_TOKEN : ${{ secrets.GITHUB_TOKEN }}
41- NOTARIZE : true
42-
43- - name : Upload artifacts
44- uses : actions/upload-artifact@b7c566a772e6b6bfb58ed0dc250532a479d7789f # v6.0.0
45- with :
46- name : Gitify-release-mac
47- path : dist/
48- overwrite : true
49-
50- release-windows :
51- name : Publish Windows (electron-builder)
52- runs-on : windows-latest
53-
54- steps :
55- - name : Checkout
56- uses : actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
56+ NOTARIZE : ${{ matrix.use-apple-notarization }}
5757
58- - name : Setup pnpm
59- uses : pnpm/action-setup@41ff72655975bd51cab0327fa583b6e92b6d3061 # v4.2.0
60-
61- - name : Setup Node
62- uses : actions/setup-node@6044e13b5dc448c55e2357c09f80417699197238 # v6.2.0
63- with :
64- node-version-file : ' .nvmrc'
65- cache : ' pnpm'
66-
67- - run : pnpm install
68- - run : pnpm build
69- env :
70- OAUTH_CLIENT_ID : ${{ secrets.OAUTH_CLIENT_ID }}
71- OAUTH_CLIENT_SECRET : ${{ secrets.OAUTH_CLIENT_SECRET }}
72- - run : pnpm package:win --publish onTagOrDraft
73- env :
74- GH_TOKEN : ${{ secrets.GITHUB_TOKEN }}
75-
7658 - name : Upload artifacts
7759 uses : actions/upload-artifact@b7c566a772e6b6bfb58ed0dc250532a479d7789f # v6.0.0
7860 with :
79- name : Gitify-release-win
61+ name : ${{ matrix.artifact-name }}
8062 path : dist/
8163 overwrite : true
82-
83- release-linux :
84- name : Publish Linux (electron-builder)
85- runs-on : ubuntu-latest
86-
87- steps :
88- - name : Checkout
89- uses : actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
90-
91- - name : Setup pnpm
92- uses : pnpm/action-setup@41ff72655975bd51cab0327fa583b6e92b6d3061 # v4.2.0
93-
94- - name : Setup Node
95- uses : actions/setup-node@6044e13b5dc448c55e2357c09f80417699197238 # v6.2.0
96- with :
97- node-version-file : ' .nvmrc'
98- cache : ' pnpm'
99-
100- - run : pnpm install
101- - run : pnpm build
102- env :
103- OAUTH_CLIENT_ID : ${{ secrets.OAUTH_CLIENT_ID }}
104- OAUTH_CLIENT_SECRET : ${{ secrets.OAUTH_CLIENT_SECRET }}
105- - run : pnpm package:linux --publish onTagOrDraft
106- env :
107- GH_TOKEN : ${{ secrets.GITHUB_TOKEN }}
108-
109- - name : Upload artifacts
110- uses : actions/upload-artifact@b7c566a772e6b6bfb58ed0dc250532a479d7789f # v6.0.0
111- with :
112- name : Gitify-release-linux
113- path : dist/
114- overwrite : true
0 commit comments