27
27
- name : Setup node
28
28
uses : actions/setup-node@v4
29
29
with :
30
- node-version : lts/*
30
+ node-version : 23
31
31
32
32
- name : Install dependencies
33
33
run : |
@@ -115,7 +115,6 @@ jobs:
115
115
BSI_CLOUD_APP_ID : ${{ secrets.BSI_CLOUD_APP_ID }}
116
116
BSI_CLOUD_COLLECTION_ID : ${{ secrets.BSI_CLOUD_COLLECTION_ID }}
117
117
118
-
119
118
# - name: Send job status to MQTT (starting job)
120
119
# uses: potaesm/github-actions-mqtt-request@1.0.0
121
120
# if: always()
@@ -129,7 +128,7 @@ jobs:
129
128
# connectTimeout: 30000
130
129
131
130
test-winsrv :
132
- needs :
131
+ needs :
133
132
- test-macos
134
133
runs-on :
135
134
- self-hosted
@@ -224,7 +223,7 @@ jobs:
224
223
BSI_CLOUD_LOGON_USERID : ${{ secrets.BSI_CLOUD_LOGON_USERID }}
225
224
BSI_CLOUD_LOGON_PWD : ${{ secrets.BSI_CLOUD_LOGON_PWD }}
226
225
BSI_CLOUD_APP_ID : ${{ secrets.BSI_CLOUD_APP_ID }}
227
- BSI_CLOUD_COLLECTION_ID : ${{ secrets.BSI_CLOUD_COLLECTION_ID }}
226
+ BSI_CLOUD_COLLECTION_ID : ${{ secrets.BSI_CLOUD_COLLECTION_ID }}
228
227
229
228
- name : Run QSEoW tests
230
229
run : |
@@ -264,9 +263,8 @@ jobs:
264
263
# payload: '{ "type":"ci-test", "repo": "${{ github.repository }}", "job": "${{ github.job }}", "workflow": "${{ github.workflow }}", "nodeVersion": "${{ env.NODE_VERSION }}","status": "completed","conclusion":"${{ env.JOB_CONCLUSION }}" }'
265
264
# connectTimeout: 30000
266
265
267
-
268
266
release-please :
269
- needs :
267
+ needs :
270
268
- test-winsrv
271
269
runs-on : ubuntu-latest
272
270
outputs :
@@ -336,7 +334,7 @@ jobs:
336
334
MACOS_CI_KEYCHAIN_PWD : ${{ secrets.PROD_MACOS_CI_KEYCHAIN_PWD }}
337
335
PROD_MACOS_NOTARIZATION_APPLE_ID : ${{ secrets.PROD_MACOS_NOTARIZATION_APPLE_ID }}
338
336
PROD_MACOS_NOTARIZATION_TEAM_ID : ${{ secrets.PROD_MACOS_NOTARIZATION_TEAM_ID }}
339
- PROD_MACOS_NOTARIZATION_PWD : ${{ secrets.PROD_MACOS_NOTARIZATION_PWD }}
337
+ PROD_MACOS_NOTARIZATION_PWD : ${{ secrets.PROD_MACOS_NOTARIZATION_PWD }}
340
338
steps :
341
339
- name : Release tag and upload url from previous job
342
340
run : |
@@ -351,10 +349,6 @@ jobs:
351
349
with :
352
350
node-version : 23
353
351
354
- - name : Install tool for creating stand-alone executables
355
- run : |
356
- npm install pkg --location=global
357
-
358
352
- name : Install dependencies
359
353
run : |
360
354
pwd
@@ -364,11 +358,23 @@ jobs:
364
358
- name : Build binaries
365
359
run : |
366
360
cd src
361
+
362
+ # Create a single JS file using esbuild
367
363
./node_modules/.bin/esbuild ${DIST_FILE_NAME}.js --bundle --outfile=build.cjs --format=cjs --platform=node --target=node23
364
+
365
+ # Generate blob to be injected into the binary
368
366
node --experimental-sea-config sea-config.json
367
+
368
+ # Get a copy of the Node executable
369
369
cp $(command -v node) ${DIST_FILE_NAME}
370
+
371
+ # Remove the signature from the Node executable
372
+ codesign --remove-signature ${DIST_FILE_NAME}
373
+
374
+ # Inject the blob
370
375
npx postject ${DIST_FILE_NAME} NODE_SEA_BLOB sea-prep.blob --sentinel-fuse NODE_SEA_FUSE_fce680ab2cc467b6e072b8b5df1996b2 --macho-segment-name NODE_SEA
371
376
377
+ # Start signing of the binary
372
378
security delete-keychain build.keychain || true
373
379
374
380
# -------------------
@@ -385,7 +391,7 @@ jobs:
385
391
security unlock-keychain -p "$MACOS_CI_KEYCHAIN_PWD" build.keychain
386
392
security import certificate.p12 -k build.keychain -P "$MACOS_CERTIFICATE_PWD" -T /usr/bin/codesign
387
393
security set-key-partition-list -S apple-tool:,apple:,codesign: -s -k "$MACOS_CI_KEYCHAIN_PWD" build.keychain
388
-
394
+
389
395
codesign --force -s "$MACOS_CERTIFICATE_NAME" -v "./${DIST_FILE_NAME}" --deep --strict --options=runtime --timestamp --entitlements ../release-config/${DIST_FILE_NAME}.entitlements
390
396
391
397
# -------------------
@@ -462,10 +468,6 @@ jobs:
462
468
with :
463
469
node-version : 23
464
470
465
- - name : Install tool for creating stand-alone executables
466
- run : |
467
- npm install pkg --location=global
468
-
469
471
- name : Install dependencies
470
472
run : |
471
473
pwd
@@ -475,8 +477,14 @@ jobs:
475
477
- name : Build binaries
476
478
run : |
477
479
cd src
480
+
481
+ # Create a single JS file using esbuild
478
482
./node_modules/.bin/esbuild "${env:DIST_FILE_NAME}.js" --bundle --outfile=build.cjs --format=cjs --platform=node --target=node23
483
+
484
+ # Generate blob to be injected into the binary
479
485
node --experimental-sea-config sea-config.json
486
+
487
+ # Get a copy of the Node executable
480
488
node -e "require('fs').copyFileSync(process.execPath, '${env:DIST_FILE_NAME}.exe')"
481
489
482
490
# -------------------
@@ -573,10 +581,6 @@ jobs:
573
581
with :
574
582
node-version : 23
575
583
576
- - name : Install tool for creating stand-alone executables
577
- run : |
578
- npm install pkg --location=global
579
-
580
584
- name : Install dependencies
581
585
run : |
582
586
pwd
@@ -586,8 +590,14 @@ jobs:
586
590
- name : Build binaries
587
591
run : |
588
592
cd src
593
+
594
+ # Create a single JS file using esbuild
589
595
./node_modules/.bin/esbuild ${DIST_FILE_NAME}.js --bundle --outfile=build.cjs --format=cjs --platform=node --target=node23
596
+
597
+ # Generate blob to be injected into the binary
590
598
node --experimental-sea-config sea-config.json
599
+
600
+ # Get a copy of the Node executable
591
601
cp $(command -v node) ${DIST_FILE_NAME}
592
602
npx postject ${DIST_FILE_NAME} NODE_SEA_BLOB sea-prep.blob --sentinel-fuse NODE_SEA_FUSE_fce680ab2cc467b6e072b8b5df1996b2
593
603
0 commit comments