Skip to content

Commit 543fe32

Browse files
lukekimsgrebnov
andcommitted
Fix signing (#2)
* Tweak * Tweak * Remove folder * Remove bash * Windows Updates * Build updates * Use hardcoded path * Try hardcoding * Tweaks for testing * Add powershell script * Use Powershell script * Add error checks * Test * Test * Fix the environment * Add upload step * Fix script * Fix * Fix * Use machines Java * Tweaks * Try storepass * Use http --------- Co-authored-by: Sergei Grebnov <sergei.grebnov@gmail.com>
1 parent f9a64e3 commit 543fe32

3 files changed

Lines changed: 64 additions & 12 deletions

File tree

.github/workflows/build.yml

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,3 +24,9 @@ jobs:
2424
- name: Make Package
2525
run: |
2626
make package
27+
28+
- name: Upload Artifact
29+
uses: actions/upload-artifact@v4
30+
with:
31+
name: spice.unsigned.taco
32+
path: spice.taco

.github/workflows/release.yml

Lines changed: 27 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -2,45 +2,60 @@ name: release
22
on:
33
workflow_dispatch:
44
inputs:
5+
workflow_run_id:
6+
description: 'ID of the workflow run to fetch artifacts from'
7+
required: true
8+
type: string
59
signed_binary_name:
610
description: 'Name of the signed binary'
711
required: false
8-
default: 'spiceai.signed.taco'
12+
default: 'spiceai.taco'
913
type: string
1014
release:
1115
types: [created]
1216

1317
jobs:
14-
build:
18+
release:
1519
runs-on: code-signing
16-
if: github.event.action == 'created' && github.event.release.prerelease == true
20+
environment: signed_release
1721
steps:
1822
- name: Checkout
1923
uses: actions/checkout@v4
2024
with:
2125
submodules: recursive
2226

23-
- name: Install Python
24-
uses: actions/setup-python@v4
27+
- name: Download Artifact
28+
uses: actions/download-artifact@v4
2529
with:
26-
python-version: 3.13
30+
name: spice.unsigned.taco
31+
github-token: ${{ secrets.GITHUB_TOKEN }}
32+
run-id: ${{ inputs.workflow_run_id }}
2733

28-
- name: Make Package (unsigned)
34+
- name: Copy unsigned taco
2935
run: |
30-
make package
36+
cp spice.taco ${{ inputs.signed_binary_name }}
37+
echo "Signed binary name: ${{ inputs.signed_binary_name }}"
3138
3239
- name: Set up Java for signing
3340
uses: actions/setup-java@v4
3441
with:
3542
java-version: '11'
3643
distribution: 'zulu'
3744

38-
- name: Sign ${{ inputs.signed_binary_name}}
45+
- name: Sign ${{ inputs.signed_binary_name }}
46+
shell: powershell
3947
env:
48+
DIGICERT_TOKEN_PASSWORD: ${{ secrets.DIGICERT_TOKEN_PASSWORD }}
4049
DIGICERT_KEY_ALIAS: ${{ secrets.DIGICERT_KEY_ALIAS }}
41-
run: |
42-
jarsigner -tsa http://timestamp.digicert.com -verbose -keystore NONE -storetype PKCS11 -providerClass sun.security.pkcs11.SunPKCS11 -providerArg pkcs11properties.cfg -sigalg SHA256withRSA -signedjar ${{ inputs.signed_binary_name}} spice.taco $DIGICERT_KEY_ALIAS
43-
shell: bash
50+
DIGICERT_TOKEN_CFG_PATH: ${{ secrets.DIGICERT_TOKEN_CFG_PATH }}
51+
SIGNED_BINARY_NAME: ${{ inputs.signed_binary_name }}
52+
run: .\sign.ps1
53+
54+
- name: Upload ${{ inputs.signed_binary_name }}
55+
uses: actions/upload-artifact@v4
56+
with:
57+
name: ${{ inputs.signed_binary_name }}
58+
path: ${{ inputs.signed_binary_name }}
4459

4560
- name: Upload to release
4661
uses: softprops/action-gh-release@v2

sign.ps1

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
echo "Signing with Digicert Token"
2+
3+
# Check if the required environment variables are set
4+
if (-not $env:DIGICERT_TOKEN_PASSWORD) {
5+
Write-Host "Error: DIGICERT_TOKEN_PASSWORD environment variable is not set."
6+
exit 1
7+
}
8+
if (-not $env:DIGICERT_TOKEN_CFG_PATH) {
9+
Write-Host "Error: DIGICERT_TOKEN_CFG_PATH environment variable is not set."
10+
exit 1
11+
}
12+
if (-not $env:DIGICERT_KEY_ALIAS) {
13+
Write-Host "Error: DIGICERT_KEY_ALIAS environment variable is not set."
14+
exit 1
15+
}
16+
if (-not $env:SIGNED_BINARY_NAME) {
17+
Write-Host "Error: SIGNED_BINARY_NAME environment variable is not set."
18+
exit 1
19+
}
20+
21+
jarsigner -verbose `
22+
-tsa http://timestamp.digicert.com `
23+
-keystore NONE `
24+
-storetype PKCS11 `
25+
-storepass $env:DIGICERT_TOKEN_PASSWORD `
26+
-providerClass sun.security.pkcs11.SunPKCS11 `
27+
-providerArg "$env:DIGICERT_TOKEN_CFG_PATH" `
28+
-sigalg SHA256withRSA `
29+
-signedjar $env:SIGNED_BINARY_NAME `
30+
spice.taco `
31+
"$env:DIGICERT_KEY_ALIAS"

0 commit comments

Comments
 (0)