16
16
cloc :
17
17
name : CLOC
18
18
runs-on : ubuntu-24.04
19
+ permissions :
20
+ contents : read
19
21
steps :
20
22
- name : Checkout repo
21
23
uses : actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
32
34
setup :
33
35
name : Setup
34
36
runs-on : ubuntu-24.04
37
+ permissions :
38
+ contents : read
35
39
outputs :
36
40
package_version : ${{ steps.retrieve-version.outputs.package_version }}
37
41
steps :
53
57
_PACKAGE_VERSION : ${{ needs.setup.outputs.package_version }}
54
58
_PKG_FETCH_NODE_VERSION : 18.5.0
55
59
_PKG_FETCH_VERSION : 3.4
60
+ permissions :
61
+ contents : read
56
62
steps :
57
63
- name : Checkout repo
58
64
uses : actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
@@ -132,6 +138,8 @@ jobs:
132
138
name : Build Mac CLI
133
139
runs-on : macos-13
134
140
needs : setup
141
+ permissions :
142
+ contents : read
135
143
env :
136
144
_PACKAGE_VERSION : ${{ needs.setup.outputs.package_version }}
137
145
_PKG_FETCH_NODE_VERSION : 18.5.0
@@ -208,6 +216,8 @@ jobs:
208
216
name : Build Windows CLI
209
217
runs-on : windows-2022
210
218
needs : setup
219
+ permissions :
220
+ contents : read
211
221
env :
212
222
_PACKAGE_VERSION : ${{ needs.setup.outputs.package_version }}
213
223
_WIN_PKG_FETCH_VERSION : 18.5.0
@@ -341,6 +351,9 @@ jobs:
341
351
name : Build Windows GUI
342
352
runs-on : windows-2022
343
353
needs : setup
354
+ permissions :
355
+ contents : read
356
+ id-token : write
344
357
env :
345
358
NODE_OPTIONS : --max_old_space_size=4096
346
359
_PACKAGE_VERSION : ${{ needs.setup.outputs.package_version }}
@@ -372,10 +385,12 @@ jobs:
372
385
- name : Install Node dependencies
373
386
run : npm install
374
387
375
- - name : Login to Azure
376
- uses : Azure/ login@e15b166166a8746d1a47596803bd8c1b595455cf # v1.6.0
388
+ - name : Log in to Azure
389
+ uses : bitwarden/gh-actions/azure- login@main
377
390
with :
378
- creds : ${{ secrets.AZURE_KV_CI_SERVICE_PRINCIPAL }}
391
+ subscription_id : ${{ secrets.AZURE_SUBSCRIPTION_ID }}
392
+ tenant_id : ${{ secrets.AZURE_TENANT_ID }}
393
+ client_id : ${{ secrets.AZURE_CLIENT_ID }}
379
394
380
395
- name : Retrieve secrets
381
396
id : retrieve-secrets
@@ -388,6 +403,9 @@ jobs:
388
403
code-signing-client-secret,
389
404
code-signing-cert-name"
390
405
406
+ - name : Log out from Azure
407
+ uses : bitwarden/gh-actions/azure-logout@main
408
+
391
409
- name : Build & Sign
392
410
run : npm run dist:win
393
411
env :
@@ -431,6 +449,8 @@ jobs:
431
449
name : Build Linux GUI
432
450
runs-on : ubuntu-24.04
433
451
needs : setup
452
+ permissions :
453
+ contents : read
434
454
env :
435
455
NODE_OPTIONS : --max_old_space_size=4096
436
456
_PACKAGE_VERSION : ${{ needs.setup.outputs.package_version }}
@@ -485,6 +505,9 @@ jobs:
485
505
name : Build MacOS GUI
486
506
runs-on : macos-13
487
507
needs : setup
508
+ permissions :
509
+ contents : read
510
+ id-token : write
488
511
env :
489
512
NODE_OPTIONS : --max_old_space_size=4096
490
513
_PACKAGE_VERSION : ${{ needs.setup.outputs.package_version }}
@@ -512,10 +535,19 @@ jobs:
512
535
echo "GitHub ref: $GITHUB_REF"
513
536
echo "GitHub event: $GITHUB_EVENT"
514
537
515
- - name : Login to Azure
516
- uses : Azure/login@e15b166166a8746d1a47596803bd8c1b595455cf # v1.6.0
538
+ - name : Log in to Azure
539
+ uses : bitwarden/gh-actions/azure-login@main
540
+ with :
541
+ subscription_id : ${{ secrets.AZURE_SUBSCRIPTION_ID }}
542
+ tenant_id : ${{ secrets.AZURE_TENANT_ID }}
543
+ client_id : ${{ secrets.AZURE_CLIENT_ID }}
544
+
545
+ - name : Get Azure Key Vault secrets
546
+ id : get-kv-secrets
547
+ uses : bitwarden/gh-actions/get-keyvault-secrets@main
517
548
with :
518
- creds : ${{ secrets.AZURE_KV_CI_SERVICE_PRINCIPAL }}
549
+ keyvault : gh-directory-connector
550
+ secrets : " KEYCHAIN-PASSWORD,APP-STORE-CONNECT-AUTH-KEY,APP-STORE-CONNECT-TEAM-ISSUER"
519
551
520
552
- name : Get certificates
521
553
run : |
@@ -530,9 +562,12 @@ jobs:
530
562
az keyvault secret show --id https://bitwarden-ci.vault.azure.net/certificates/macdev-cert |
531
563
jq -r .value | base64 -d > $HOME/certificates/macdev-cert.p12
532
564
565
+ - name : Log out from Azure
566
+ uses : bitwarden/gh-actions/azure-logout@main
567
+
533
568
- name : Set up keychain
534
569
env :
535
- KEYCHAIN_PASSWORD : ${{ secrets.KEYCHAIN_PASSWORD }}
570
+ KEYCHAIN_PASSWORD : ${{ steps.get-kv- secrets.outputs.KEYCHAIN-PASSWORD }}
536
571
run : |
537
572
security create-keychain -p $KEYCHAIN_PASSWORD build.keychain
538
573
security default-keychain -s build.keychain
@@ -566,13 +601,13 @@ jobs:
566
601
run : |
567
602
mkdir ~/private_keys
568
603
cat << EOF > ~/private_keys/AuthKey_UFD296548T.p8
569
- ${{ secrets.APP_STORE_CONNECT_AUTH_KEY }}
604
+ ${{ steps.get-kv- secrets.outputs.APP-STORE-CONNECT-AUTH-KEY }}
570
605
EOF
571
606
572
607
- name : Build application
573
608
run : npm run dist:mac
574
609
env :
575
- APP_STORE_CONNECT_TEAM_ISSUER : ${{ secrets.APP_STORE_CONNECT_TEAM_ISSUER }}
610
+ APP_STORE_CONNECT_TEAM_ISSUER : ${{ steps.get-kv- secrets.outputs.APP-STORE-CONNECT-TEAM-ISSUER }}
576
611
APP_STORE_CONNECT_AUTH_KEY : UFD296548T
577
612
APP_STORE_CONNECT_AUTH_KEY_PATH : ~/private_keys/AuthKey_UFD296548T.p8
578
613
CSC_FOR_PULL_REQUEST : true
@@ -618,6 +653,8 @@ jobs:
618
653
- windows-gui
619
654
- linux-gui
620
655
- macos-gui
656
+ permissions :
657
+ id-token : write
621
658
steps :
622
659
- name : Check if any job failed
623
660
if : |
@@ -627,11 +664,13 @@ jobs:
627
664
&& contains(needs.*.result, 'failure')
628
665
run : exit 1
629
666
630
- - name : Login to Azure - CI subscription
631
- uses : Azure/login@e15b166166a8746d1a47596803bd8c1b595455cf # v1.6.0
667
+ - name : Log in to Azure
632
668
if : failure()
669
+ uses : bitwarden/gh-actions/azure-login@main
633
670
with :
634
- creds : ${{ secrets.AZURE_KV_CI_SERVICE_PRINCIPAL }}
671
+ subscription_id : ${{ secrets.AZURE_SUBSCRIPTION_ID }}
672
+ tenant_id : ${{ secrets.AZURE_TENANT_ID }}
673
+ client_id : ${{ secrets.AZURE_CLIENT_ID }}
635
674
636
675
- name : Retrieve secrets
637
676
id : retrieve-secrets
@@ -641,6 +680,9 @@ jobs:
641
680
keyvault : " bitwarden-ci"
642
681
secrets : " devops-alerts-slack-webhook-url"
643
682
683
+ - name : Log out from Azure
684
+ uses : bitwarden/gh-actions/azure-logout@main
685
+
644
686
- name : Notify Slack on failure
645
687
uses : act10ns/slack@44541246747a30eb3102d87f7a4cc5471b0ffb7d # v2.1.0
646
688
if : failure()
0 commit comments