3030 type : string
3131 description : ' CMake config options'
3232 required : false
33- default : ' -T host=x64 -A x64 -DUSE_OPTIONAL=OFF -DCLIENTTOOLS_ONLY=ON -DUSE_AZURE=OFF -DUSE_CASSANDRA=OFF -DUSE_PARQUET=OFF -DUSE_JAVA=OFF -DUSE_OPENLDAP=OFF'
33+ default : ' -T host=x64 -A x64 -DUSE_OPTIONAL=OFF -DCLIENTTOOLS_ONLY=ON -DUSE_AZURE=OFF -DUSE_CASSANDRA=OFF -DUSE_PARQUET=OFF -DUSE_JAVA=OFF -DUSE_OPENLDAP=OFF -DDIGICERT_KEYPAIR_ALIAS=RIS_Data_Services_HPCC_Systems '
3434 cmake-build-options :
3535 type : string
3636 description : ' CMake build options'
@@ -66,19 +66,32 @@ jobs:
6666 submodules : recursive
6767 path : ./LN
6868
69- - name : Setup Code Signing
69+ - name : Setup Certificate File
70+ - name : Setup Certificate File
7071 shell : " pwsh"
7172 run : |
72- mkdir -p ./sign
73- cd sign
74- $pfxPath = "hpcc_code_signing.pfx"
75- $encodedBytes = [System.Convert]::FromBase64String("${{ secrets.SIGNING_CERTIFICATE }}")
76- $currentDirectory = Get-Location
77- $certificatePath = Join-Path -Path $currentDirectory -ChildPath $pfxPath
78- [IO.File]::WriteAllBytes("$certificatePath", $encodedBytes)
79- $passphrasePath = Join-Path -Path $currentDirectory -ChildPath "passphrase.txt"
80- Set-Content -Path $passphrasePath -Value "${{ secrets.SIGNING_CERTIFICATE_PASSPHRASE }}"
81- CertUtil -p ${{ secrets.SIGNING_CERTIFICATE_PASSPHRASE }} hpcc_code_signing.pfx
73+ $base64 = "${{ secrets.SM_CLIENT_CERT_FILE_B64 }}"
74+ if ([string]::IsNullOrEmpty($base64)) {
75+ Write-Error "Secret SM_CLIENT_CERT_FILE_B64 is empty or not set."
76+ exit 1
77+ }
78+ $bytes = [Convert]::FromBase64String($base64)
79+ $outDir = "$env:RUNNER_TEMP"
80+ $p12Path = Join-Path $outDir "sm_client_cert.p12"
81+ [IO.File]::WriteAllBytes($p12Path, $bytes)
82+ # Make sure the path is visible to subsequent steps
83+ "SM_CLIENT_CERT_FILE=$p12Path" | Out-File -FilePath $env:GITHUB_ENV -Append
84+
85+ - name : Setup Software Trust Manager
86+ uses : digicert/code-signing-software-trust-action@v1.0.1
87+ with :
88+ simple-signing-mode : true
89+ keypair-alias : " RIS_Data_Services_HPCC_Systems"
90+ env :
91+ SM_HOST : https://clientauth.one.digicert.com
92+ SM_API_KEY : ${{ secrets.DIGICERT_API_KEY }}
93+ SM_CLIENT_CERT_FILE : ${{ env.SM_CLIENT_CERT_FILE }}
94+ SM_CLIENT_CERT_PASSWORD : ${{ secrets.SM_CLIENT_CERT_PASSWORD }}
8295
8396 - name : vcpkg bootstrap
8497 shell : " bash"
@@ -109,6 +122,7 @@ jobs:
109122 fi
110123
111124 - name : Build Clienttools
125+ id : build_clienttools
112126 shell : " bash"
113127 run : |
114128 mkdir -p ./build
@@ -118,6 +132,12 @@ jobs:
118132 else
119133 cmake --build ./build ${{ inputs.cmake-build-options }} --target SIGN
120134 fi
135+ env :
136+ SM_HOST : https://clientauth.one.digicert.com
137+ SM_API_KEY : ${{ secrets.DIGICERT_API_KEY }}
138+ SM_CLIENT_CERT_FILE : ${{ env.SM_CLIENT_CERT_FILE }}
139+ SM_CLIENT_CERT_PASSWORD : ${{ secrets.SM_CLIENT_CERT_PASSWORD }}
140+
121141
122142 - name : Release Community Clienttools
123143 if : ${{ inputs.ln-ref == '' }}
@@ -127,7 +147,7 @@ jobs:
127147 generateReleaseNotes : false
128148 prerelease : ${{ contains(github.ref, '-rc') }}
129149 makeLatest : ${{ inputs.make-latest }}
130- artifacts : " ./build/hpccsystems-clienttools-community*.exe "
150+ artifacts : " ${{ steps.build_clienttools.outputs.packages }} "
131151
132152 - name : Release Internal Clienttools to JFrog Repository
133153 if : ${{ inputs.ln-ref != '' && github.repository_owner == 'hpcc-systems' }}
0 commit comments