Skip to content

Commit 02e380f

Browse files
authored
ci: fix signing on Windows in the release workflow (#1787)
1 parent c23b792 commit 02e380f

File tree

2 files changed

+22
-20
lines changed

2 files changed

+22
-20
lines changed

.github/workflows/release.yml

Lines changed: 21 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -59,30 +59,29 @@ jobs:
5959
MACOS_CERT_P12: ${{ secrets.MACOS_CERT_P12 }}
6060
MACOS_CERT_PASSWORD: ${{ secrets.MACOS_CERT_PASSWORD }}
6161
run: chmod +x tools/add-macos-cert.sh && . ./tools/add-macos-cert.sh
62+
- name: Signing Manager Setup (Windows)
63+
if: ${{ startsWith(matrix.os, 'windows-') }}
64+
uses: digicert/ssm-code-signing@fb61e357690ad6aaa11c372000c37fb74d35c000 # v1.1.1
6265
- name: Write authentication cert to disk (Windows)
6366
if: ${{ startsWith(matrix.os, 'windows-') }}
64-
shell: powershell
67+
shell: bash
6568
env:
6669
SM_CLIENT_CERT_P12_BASE64: ${{ secrets.SM_CLIENT_CERT_P12_BASE64 }}
67-
run: |
68-
New-Item $Profile.CurrentUserAllHosts -Force
69-
$SM_CLIENT_CERT_FILE=(Join-Path -Path (Resolve-Path .\).Path -ChildPath "cert.p12")
70-
Add-Content -Path $Profile.CurrentUserAllHosts -Value "`$env:SM_CLIENT_CERT_FILE = '$SM_CLIENT_CERT_FILE'"
71-
[IO.File]::WriteAllBytes($SM_CLIENT_CERT_FILE, [Convert]::FromBase64String($env:SM_CLIENT_CERT_P12_BASE64))
72-
- name: Signing Manager Setup (Windows)
73-
shell: powershell
74-
if: ${{ startsWith(matrix.os, 'windows-') }}
70+
run: |
71+
echo "$SM_CLIENT_CERT_P12_BASE64" | base64 --decode > /d/cert.p12
72+
echo "SM_CLIENT_CERT_FILE=D:\\cert.p12" >> "$GITHUB_ENV"
73+
- name: Sync cert (Windows)
74+
shell: cmd
7575
env:
7676
CERT_FINGERPRINT: ${{ secrets.CERT_FINGERPRINT }}
7777
KEYPAIR_ALIAS: ${{ secrets.KEYPAIR_ALIAS }}
7878
SM_API_KEY: ${{ secrets.SM_API_KEY }}
79-
SSM: ${{ secrets.SSM }}
79+
SM_CLIENT_CERT_FILE: ${{ env.SM_CLIENT_CERT_FILE }}
80+
SM_CLIENT_CERT_PASSWORD: ${{ secrets.SM_CLIENT_CERT_PASSWORD }}
81+
SM_HOST: ${{ secrets.SM_HOST }}
8082
run: |
81-
cd C:\
82-
curl.exe -X GET https://one.digicert.com/signingmanager/api-ui/v1/releases/smtools-windows-x64.msi/download -H "x-api-key:$env:SM_API_KEY" -o smtools-windows-x64.msi
83-
msiexec.exe /i smtools-windows-x64.msi /quiet /qn | Wait-Process
84-
& $env:SSM\smksp_registrar.exe list
85-
& $env:SSM\smctl.exe windows certsync --keypair-alias=$env:KEYPAIR_ALIAS
83+
smksp_registrar list
84+
smctl windows certsync --keypair-alias=%KEYPAIR_ALIAS%
8685
- name: Build (macOS)
8786
if: ${{ startsWith(matrix.os, 'macos-') }}
8887
env:
@@ -93,9 +92,14 @@ jobs:
9392
if: ${{ startsWith(matrix.os, 'windows-') }}
9493
env:
9594
CERT_FINGERPRINT: ${{ secrets.CERT_FINGERPRINT }}
95+
KEYPAIR_ALIAS: ${{ secrets.KEYPAIR_ALIAS }}
96+
SM_API_KEY: ${{ secrets.SM_API_KEY }}
97+
SM_CLIENT_CERT_FILE: ${{ env.SM_CLIENT_CERT_FILE }}
98+
SM_CLIENT_CERT_PASSWORD: ${{ secrets.SM_CLIENT_CERT_PASSWORD }}
99+
SM_HOST: ${{ secrets.SM_HOST }}
96100
run: yarn run publish --arch=${{ matrix.arch }} --dry-run
97-
- name: Build
98-
if: ${{ !startsWith(matrix.os, 'macos-') }}
101+
- name: Build (Linux)
102+
if: ${{ startsWith(matrix.os, 'ubuntu-') }}
99103
run: yarn run publish --arch=${{ matrix.arch }} --dry-run
100104
- uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4.6.2
101105
with:

forge.config.ts

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -124,9 +124,7 @@ const config: ForgeConfig = {
124124
noMsi: true,
125125
setupExe: `electron-fiddle-${version}-win32-${arch}-setup.exe`,
126126
setupIcon: path.resolve(iconDir, 'fiddle.ico'),
127-
windowsSign: {
128-
signWithParams: `/sha1 ${process.env.CERT_FINGERPRINT} /tr http://timestamp.digicert.com /td SHA256 /fd SHA256`,
129-
},
127+
signWithParams: `/sha1 ${process.env.CERT_FINGERPRINT} /tr http://timestamp.digicert.com /td SHA256 /fd SHA256`,
130128
}),
131129
},
132130
{

0 commit comments

Comments
 (0)