Skip to content

Commit a2ce585

Browse files
committed
Sign with SignPath
1 parent 4cdb1f4 commit a2ce585

1 file changed

Lines changed: 92 additions & 7 deletions

File tree

.github/workflows/build.yml

Lines changed: 92 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -60,6 +60,8 @@ jobs:
6060
run: Src\Setup\BuildBinaries.bat
6161

6262
- name: Upload binaries
63+
if: github.event_name == 'workflow_dispatch' && github.ref == 'refs/heads/master' # Only manual master builds
64+
id: upload-binaries
6365
uses: actions/upload-artifact@v7
6466
with:
6567
name: Binaries
@@ -68,6 +70,20 @@ jobs:
6870
!Src/Setup/Output/*.skin
6971
!Src/Setup/Output/*.skin7
7072
!Src/Setup/Output/*.zip
73+
retention-days: 1
74+
75+
- name: Sign binaries with SignPath
76+
if: github.event_name == 'workflow_dispatch' && github.ref == 'refs/heads/master' # Only manual master builds
77+
uses: signpath/github-action-submit-signing-request@v2
78+
with:
79+
api-token: '${{ secrets.SIGNPATH_API_TOKEN }}'
80+
organization-id: 'b34b60e3-e5bf-4a6e-a13c-dcf641b4362c'
81+
project-slug: 'Open-Shell-Menu'
82+
signing-policy-slug: 'test-signing'
83+
artifact-configuration-slug: 'Binaries'
84+
github-artifact-id: '${{ steps.upload-binaries.outputs.artifact-id }}'
85+
wait-for-completion: true
86+
output-artifact-directory: 'Src/Setup/Output/'
7187

7288
- name: Build installers
7389
shell: cmd
@@ -76,25 +92,86 @@ jobs:
7692
run: Src\Setup\_BuildEnglish.bat
7793

7894
- name: Upload installers
95+
if: github.event_name == 'workflow_dispatch' && github.ref == 'refs/heads/master' # Only manual master builds
96+
id: upload-installers
7997
uses: actions/upload-artifact@v7
8098
with:
8199
name: MSI
82100
path: |
83101
Src/Setup/Temp/*.msi
102+
retention-days: 1
103+
104+
- name: Sign installers with SignPath
105+
if: github.event_name == 'workflow_dispatch' && github.ref == 'refs/heads/master' # Only manual master builds
106+
uses: signpath/github-action-submit-signing-request@v2
107+
with:
108+
api-token: '${{ secrets.SIGNPATH_API_TOKEN }}'
109+
organization-id: 'b34b60e3-e5bf-4a6e-a13c-dcf641b4362c'
110+
project-slug: 'Open-Shell-Menu'
111+
signing-policy-slug: 'test-signing'
112+
artifact-configuration-slug: 'Installers'
113+
github-artifact-id: '${{ steps.upload-installers.outputs.artifact-id }}'
114+
wait-for-completion: true
115+
output-artifact-directory: 'Src/Setup/Temp/'
84116

85-
- name: Build final
117+
- name: Build setup and symbols
86118
shell: cmd
87119
env:
88120
CS_VERSION: ${{ steps.versioning.outputs.NEW_VERSION }}
89121
run: Src\Setup\BuildArchives.bat
90122

91-
- name: Upload final
123+
- name: Upload symbols
124+
uses: actions/upload-artifact@v7
125+
with:
126+
path: |
127+
Src/Setup/Final/OpenShellSymbols*.7z
128+
archive: false
129+
130+
- name: Upload utility
131+
uses: actions/upload-artifact@v7
132+
with:
133+
path: |
134+
Src/Setup/Final/Utility.exe
135+
archive: false
136+
137+
- name: Upload setup
138+
id: upload-setup
92139
uses: actions/upload-artifact@v7
93140
with:
94-
name: Final
95141
path: |
96-
Src/Setup/Final/
97-
!Src/Setup/Final/OpenShellLoc.zip
142+
Src/Setup/Final/OpenShellSetup*.exe
143+
archive: false
144+
145+
- name: Sign setup with SignPath
146+
if: github.event_name == 'workflow_dispatch' && github.ref == 'refs/heads/master' # Only manual master builds
147+
uses: signpath/github-action-submit-signing-request@v2
148+
with:
149+
api-token: '${{ secrets.SIGNPATH_API_TOKEN }}'
150+
organization-id: 'b34b60e3-e5bf-4a6e-a13c-dcf641b4362c'
151+
project-slug: 'Open-Shell-Menu'
152+
signing-policy-slug: 'test-signing'
153+
github-artifact-id: '${{ steps.upload-setup.outputs.artifact-id }}'
154+
wait-for-completion: true
155+
skip-decompress: true
156+
output-artifact-directory: 'Src/Setup/Final/'
157+
158+
# `overwrite: true` doesn't work with `archive: false`, so we have to delete the original first
159+
# https://github.com/actions/upload-artifact/issues/769
160+
# https://github.com/actions/upload-artifact/issues/785
161+
- name: Delete setup
162+
if: github.event_name == 'workflow_dispatch' && github.ref == 'refs/heads/master' # Only manual master builds
163+
uses: geekyeggo/delete-artifact@v6
164+
with:
165+
name: OpenShellSetup*.exe
166+
167+
- name: Upload setup (signed)
168+
if: github.event_name == 'workflow_dispatch' && github.ref == 'refs/heads/master' # Only manual master builds
169+
uses: actions/upload-artifact@v7
170+
with:
171+
path: |
172+
Src/Setup/Final/OpenShellSetup*.exe
173+
archive: false
174+
overwrite: true
98175

99176
release:
100177
if: github.event_name == 'workflow_dispatch' && github.ref == 'refs/heads/master' # Only manual master builds
@@ -103,10 +180,18 @@ jobs:
103180
permissions:
104181
contents: write # Elevate permissions ONLY for this job
105182
steps:
106-
- name: Download artifacts
183+
- name: Download setup
184+
uses: actions/download-artifact@v8
185+
with:
186+
pattern: OpenShellSetup*.exe
187+
- name: Download symbols
188+
uses: actions/download-artifact@v8
189+
with:
190+
pattern: OpenShellSymbols*.7z
191+
- name: Download utility
107192
uses: actions/download-artifact@v8
108193
with:
109-
name: OpenShell
194+
pattern: Utility.exe
110195

111196
- name: Create GitHub Release
112197
uses: softprops/action-gh-release@v3

0 commit comments

Comments
 (0)