8080
8181 node-windows :
8282 runs-on : windows-latest
83- # environment: release # This step needs to use the release context to access credentials for code signing.
83+ environment : release # This step needs to use the release context to access credentials for code signing.
8484 needs : [validate-preconditions]
8585 if : contains(fromJSON('["rc", "alpha", "node-windows"]'), needs.validate-preconditions.outputs.release_type)
8686 defaults :
@@ -102,35 +102,31 @@ jobs:
102102 id : digicert_client
103103104104
105- # Disabling these to test the windows-y commandline file manipulation stuff.
106- # - name: Import Windows certificate (Windows only)
107- # id: windows_certificate
108- # env:
109- # # Base64 encoding of the pfx/p12 certificate for Windows code signing.
110- # SM_CLIENT_CERT_FILE_B64: ${{ secrets.WINDOWS_SM_CLIENT_CERT_FILE_B64 }}
111- # run: |
112- # $CERTIFICATE_PATH_BASE64="$env:RUNNER_TEMP\cert-b64.txt"
113- # $CERTIFICATE_PATH="$env:RUNNER_TEMP\cert.pfx"
114-
115- # Set-Content -Path $CERTIFICATE_PATH_BASE64 -Value $env:SM_CLIENT_CERT_FILE_B64
116- # certutil -decode $CERTIFICATE_PATH_BASE64 $CERTIFICATE_PATH
117- # echo "CERTIFICATE_PATH=$CERTIFICATE_PATH" >> $env:GITHUB_OUTPUT
118-
119- # - name: Run smctl healthcheck to confirm if the tool is configured properly.
120- # working-directory: ${{steps.build.outputs.bin_dir}}
121- # env:
122- # # windows signing
123- # # FILE_TO_SIGN: ${{ steps.build.outputs.FILE_TO_SIGN }}
124- # WINDOWS_PKCS11_CONFIG: ${{ steps.digicert_client.outputs.PKCS11_CONFIG }}
125- # WINDOWS_SM_KEYPAIR_ALIAS: ${{ secrets.WINDOWS_SM_KEYPAIR_ALIAS }}
126- # SM_HOST: ${{ vars.WINDOWS_SM_HOST }}
127- # SM_API_KEY: ${{ secrets.WINDOWS_SM_API_KEY }}
128- # SM_CLIENT_CERT_FILE: ${{ steps.windows_certificate.outputs.CERTIFICATE_PATH }}
129- # SM_CLIENT_CERT_PASSWORD: ${{ secrets.WINDOWS_SM_CLIENT_CERT_PASSWORD }}
130- # run: |
131- # smctl healthcheck --all
132- # # smctl sign --verbose --keypair-alias ${{ env.WINDOWS_SM_KEYPAIR_ALIAS }} --input ${{ env.FILE_TO_SIGN }} --config-file ${{ env.WINDOWS_PKCS11_CONFIG }} --verbose --exit-non-zero-on-fail --failfast
133- # shell: cmd
105+ - name : Import Windows certificate (Windows only)
106+ id : windows_certificate
107+ env :
108+ # Base64 encoding of the pfx/p12 certificate for Windows code signing.
109+ SM_CLIENT_CERT_FILE_B64 : ${{ secrets.WINDOWS_SM_CLIENT_CERT_FILE_B64 }}
110+ run : |
111+ $CERTIFICATE_PATH_BASE64="$env:RUNNER_TEMP\cert-b64.txt"
112+ $CERTIFICATE_PATH="$env:RUNNER_TEMP\cert.pfx"
113+
114+ Set-Content -Path $CERTIFICATE_PATH_BASE64 -Value $env:SM_CLIENT_CERT_FILE_B64
115+ certutil -decode $CERTIFICATE_PATH_BASE64 $CERTIFICATE_PATH
116+ echo "CERTIFICATE_PATH=$CERTIFICATE_PATH" >> $env:GITHUB_OUTPUT
117+
118+ - name : Run smctl healthcheck to confirm if the tool is configured properly.
119+ working-directory : ${{steps.build.outputs.bin_dir}}
120+ env :
121+ WINDOWS_PKCS11_CONFIG : ${{ steps.digicert_client.outputs.PKCS11_CONFIG }}
122+ WINDOWS_SM_KEYPAIR_ALIAS : ${{ secrets.WINDOWS_SM_KEYPAIR_ALIAS }}
123+ SM_HOST : ${{ vars.WINDOWS_SM_HOST }}
124+ SM_API_KEY : ${{ secrets.WINDOWS_SM_API_KEY }}
125+ SM_CLIENT_CERT_FILE : ${{ steps.windows_certificate.outputs.CERTIFICATE_PATH }}
126+ SM_CLIENT_CERT_PASSWORD : ${{ secrets.WINDOWS_SM_CLIENT_CERT_PASSWORD }}
127+ run : |
128+ smctl healthcheck --all
129+ shell : cmd
134130
135131 - name : Install dependencies
136132 run : |
@@ -207,25 +203,25 @@ jobs:
207203 mv ./Node/NodeCollector ./Node/NodeCollector.exe
208204 mv ./Node/ConcordiumNode ./Node/ConcordiumNode.exe
209205
210- # - name: Sign files with smctl
211- # working-directory: ${{steps.build.outputs.bin_dir}}
212- # env:
213- # WINDOWS_PKCS11_CONFIG: ${{ steps.digicert_client.outputs.PKCS11_CONFIG }}
214- # WINDOWS_SM_KEYPAIR_ALIAS: ${{ secrets.WINDOWS_SM_KEYPAIR_ALIAS }}
215- # SM_HOST: ${{ vars.WINDOWS_SM_HOST }}
216- # SM_API_KEY: ${{ secrets.WINDOWS_SM_API_KEY }}
217- # SM_CLIENT_CERT_FILE: ${{ steps.windows_certificate.outputs.CERTIFICATE_PATH }}
218- # SM_CLIENT_CERT_PASSWORD: ${{ secrets.WINDOWS_SM_CLIENT_CERT_PASSWORD }}
219- # SM_ARGS: "--verbose --exit-non-zero-on-fail --failfast"
220- # run: |
221- # smctl sign --keypair-alias ${{ env.WINDOWS_SM_KEYPAIR_ALIAS }} --input ./Node/ConcordiumConsensusDLL.dll --config-file ${{ env.WINDOWS_PKCS11_CONFIG }} ${{ env.SM_ARGS }}
222- # smctl sign --keypair-alias ${{ env.WINDOWS_SM_KEYPAIR_ALIAS }} --input ./Node/ConcordiumBaseDLL.dll --config-file ${{ env.WINDOWS_PKCS11_CONFIG }} ${{ env.SM_ARGS }}
223- # smctl sign --keypair-alias ${{ env.WINDOWS_SM_KEYPAIR_ALIAS }} --input ./Node/ConcordiumSmartContractEngineDLL.dll --config-file ${{ env.WINDOWS_PKCS11_CONFIG }} ${{ env.SM_ARGS }}
224- # smctl sign --keypair-alias ${{ env.WINDOWS_SM_KEYPAIR_ALIAS }} --input ./Node/Sha2DLL.dll --config-file ${{ env.WINDOWS_PKCS11_CONFIG }} ${{ env.SM_ARGS }}
225- # smctl sign --keypair-alias ${{ env.WINDOWS_SM_KEYPAIR_ALIAS }} --input ./Node/NodeRunnerService.exe --config-file ${{ env.WINDOWS_PKCS11_CONFIG }} ${{ env.SM_ARGS }}
226- # smctl sign --keypair-alias ${{ env.WINDOWS_SM_KEYPAIR_ALIAS }} --input ./Node/NodeCollector.exe --config-file ${{ env.WINDOWS_PKCS11_CONFIG }} ${{ env.SM_ARGS }}
227- # smctl sign --keypair-alias ${{ env.WINDOWS_SM_KEYPAIR_ALIAS }} --input ./Node/ConcordiumNode.exe --config-file ${{ env.WINDOWS_PKCS11_CONFIG }} ${{ env.SM_ARGS }}
228- # shell: cmd
206+ - name : Sign files with smctl
207+ working-directory : ${{steps.build.outputs.bin_dir}}
208+ env :
209+ WINDOWS_PKCS11_CONFIG : ${{ steps.digicert_client.outputs.PKCS11_CONFIG }}
210+ WINDOWS_SM_KEYPAIR_ALIAS : ${{ secrets.WINDOWS_SM_KEYPAIR_ALIAS }}
211+ SM_HOST : ${{ vars.WINDOWS_SM_HOST }}
212+ SM_API_KEY : ${{ secrets.WINDOWS_SM_API_KEY }}
213+ SM_CLIENT_CERT_FILE : ${{ steps.windows_certificate.outputs.CERTIFICATE_PATH }}
214+ SM_CLIENT_CERT_PASSWORD : ${{ secrets.WINDOWS_SM_CLIENT_CERT_PASSWORD }}
215+ SM_ARGS : " --verbose --exit-non-zero-on-fail --failfast"
216+ run : |
217+ smctl sign --keypair-alias ${{ env.WINDOWS_SM_KEYPAIR_ALIAS }} --input ./Node/ConcordiumConsensusDLL.dll --config-file ${{ env.WINDOWS_PKCS11_CONFIG }} ${{ env.SM_ARGS }}
218+ smctl sign --keypair-alias ${{ env.WINDOWS_SM_KEYPAIR_ALIAS }} --input ./Node/ConcordiumBaseDLL.dll --config-file ${{ env.WINDOWS_PKCS11_CONFIG }} ${{ env.SM_ARGS }}
219+ smctl sign --keypair-alias ${{ env.WINDOWS_SM_KEYPAIR_ALIAS }} --input ./Node/ConcordiumSmartContractEngineDLL.dll --config-file ${{ env.WINDOWS_PKCS11_CONFIG }} ${{ env.SM_ARGS }}
220+ smctl sign --keypair-alias ${{ env.WINDOWS_SM_KEYPAIR_ALIAS }} --input ./Node/Sha2DLL.dll --config-file ${{ env.WINDOWS_PKCS11_CONFIG }} ${{ env.SM_ARGS }}
221+ smctl sign --keypair-alias ${{ env.WINDOWS_SM_KEYPAIR_ALIAS }} --input ./Node/NodeRunnerService.exe --config-file ${{ env.WINDOWS_PKCS11_CONFIG }} ${{ env.SM_ARGS }}
222+ smctl sign --keypair-alias ${{ env.WINDOWS_SM_KEYPAIR_ALIAS }} --input ./Node/NodeCollector.exe --config-file ${{ env.WINDOWS_PKCS11_CONFIG }} ${{ env.SM_ARGS }}
223+ smctl sign --keypair-alias ${{ env.WINDOWS_SM_KEYPAIR_ALIAS }} --input ./Node/ConcordiumNode.exe --config-file ${{ env.WINDOWS_PKCS11_CONFIG }} ${{ env.SM_ARGS }}
224+ shell : cmd
229225
230226 - name : Rename files back to their original form without extension.
231227 run : |
@@ -243,15 +239,26 @@ jobs:
243239 makecab.exe /D MaxDiskSize=0 /D Cabinet=ON /D Compress=ON /D CabinetName1=Node.cab /D SourceDir=Node /f cabfiles.txt
244240 shell : cmd
245241
246-
247242 - name : Repackage the cabinet file.
248243 run : |
249244 rm Node.cab
250245 mv disk1\Node.cab .
251246 MsiDb.exe -d ./service/windows/installer/Node.msi -k Node.cab
252247 MsiDb.exe -d ./service/windows/installer/Node.msi -a Node.cab
253248
254- # Here we would sign the installer
249+ - name : Sign files with smctl
250+ working-directory : ${{steps.build.outputs.bin_dir}}
251+ env :
252+ WINDOWS_PKCS11_CONFIG : ${{ steps.digicert_client.outputs.PKCS11_CONFIG }}
253+ WINDOWS_SM_KEYPAIR_ALIAS : ${{ secrets.WINDOWS_SM_KEYPAIR_ALIAS }}
254+ SM_HOST : ${{ vars.WINDOWS_SM_HOST }}
255+ SM_API_KEY : ${{ secrets.WINDOWS_SM_API_KEY }}
256+ SM_CLIENT_CERT_FILE : ${{ steps.windows_certificate.outputs.CERTIFICATE_PATH }}
257+ SM_CLIENT_CERT_PASSWORD : ${{ secrets.WINDOWS_SM_CLIENT_CERT_PASSWORD }}
258+ SM_ARGS : " --verbose --exit-non-zero-on-fail --failfast"
259+ run : |
260+ smctl sign --keypair-alias ${{ env.WINDOWS_SM_KEYPAIR_ALIAS }} --input ./service/windows/installer/Node.msi --config-file ${{ env.WINDOWS_PKCS11_CONFIG }} ${{ env.SM_ARGS }}
261+ shell : cmd
255262
256263 - name : Rename the package to target filename.
257264 run : |
0 commit comments