Skip to content

Commit e5d2a3e

Browse files
committed
feat: Windows Signing
1 parent e7eec56 commit e5d2a3e

5 files changed

Lines changed: 62 additions & 8 deletions

File tree

.github/workflows/publish.yml

Lines changed: 56 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ on:
77
push:
88
branches:
99
- main
10+
- windowsSigning
1011

1112
jobs:
1213
build-and-publish:
@@ -49,11 +50,64 @@ jobs:
4950
npm run postinstall
5051
npm run build
5152
52-
- name: Publish Windows release
53+
- name: Get package version
5354
if: matrix.platform == 'win'
55+
id: get-version
56+
shell: bash
57+
run: |
58+
VERSION=$(node -p "require('./package.json').version")
59+
echo "version=$VERSION" >> $GITHUB_OUTPUT
60+
echo "artifact-name=Cobolt-Setup-$VERSION.exe" >> $GITHUB_OUTPUT
61+
62+
- name: Check if release already exists
63+
if: matrix.platform == 'win'
64+
id: check-release
65+
shell: bash
66+
run: |
67+
RELEASE_EXISTS=$(gh release view "v${{ steps.get-version.outputs.version }}" --json assets,draft --jq 'if .draft == false then .assets | map(select(.name == "${{ steps.get-version.outputs.artifact-name }}")) | length else 0 end' 2>/dev/null || echo "0")
68+
echo "release-exists=$RELEASE_EXISTS" >> $GITHUB_OUTPUT
5469
env:
5570
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
56-
run: npm exec electron-builder -- --publish --win
71+
72+
- name: Build Windows executable (no publish)
73+
if: matrix.platform == 'win'
74+
run: npm exec electron-builder -- --win --publish=never
75+
76+
- name: upload-unsigned-artifact
77+
id: upload-unsigned-artifact
78+
if: matrix.platform == 'win' && steps.check-release.outputs.release-exists == '0'
79+
uses: actions/upload-artifact@v4
80+
with:
81+
name: unsigned-installer
82+
retention-days: 1
83+
path: release/build/Cobolt-Setup-${{ steps.get-version.outputs.version }}.exe
84+
85+
- name: Sign artifact
86+
if: matrix.platform == 'win' && steps.check-release.outputs.release-exists == '0'
87+
uses: signpath/github-action-submit-signing-request@v1.1
88+
with:
89+
api-token: ${{secrets.SIGNPATH_API_TOKEN}}
90+
organization-id: 3fe5dc9d-e6f6-4c25-83e5-70c5844441b9
91+
project-slug: cobolt
92+
signing-policy-slug: test-signing
93+
github-artifact-id: ${{steps.upload-unsigned-artifact.outputs.artifact-id}}
94+
wait-for-completion: true
95+
output-artifact-directory: signed-artifacts
96+
97+
- name: Download signed artifact
98+
if: matrix.platform == 'win' && steps.check-release.outputs.release-exists == '0'
99+
uses: actions/download-artifact@v4
100+
with:
101+
name: signed-artifacts
102+
path: signed-artifacts/
103+
104+
- name: Publish Windows release with signed executable
105+
if: matrix.platform == 'win' && steps.check-release.outputs.release-exists == '0'
106+
env:
107+
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
108+
run: |
109+
# Create or update release with signed executable
110+
gh release create "v${{ steps.get-version.outputs.version }}" signed-artifacts/${{ steps.get-version.outputs.artifact-name }} --title "v${{ steps.get-version.outputs.version }}" --notes "Release v${{ steps.get-version.outputs.version }}" || gh release upload "v${{ steps.get-version.outputs.version }}" signed-artifacts/${{ steps.get-version.outputs.artifact-name }} --clobber
57111
58112
- name: Publish macOS release
59113
if: matrix.platform == 'mac'

package-lock.json

Lines changed: 2 additions & 2 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "cobolt",
3-
"version": "0.0.6",
3+
"version": "0.0.7",
44
"description": "Your personal AI companion",
55
"keywords": [],
66
"repository": {

release/app/package-lock.json

Lines changed: 2 additions & 2 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

release/app/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "cobolt",
3-
"version": "0.0.6",
3+
"version": "0.0.7",
44
"description": "Cobolt",
55
"license": "MIT",
66
"author": {

0 commit comments

Comments
 (0)