33
44name : Node.js CI
55env :
6- NODE_VERSION : " 20.x "
6+ NODE_VERSION : " 24 "
77
88on : [push]
99
10+ permissions :
11+ # Required for OIDC token for NPM Trusted Publishers.
12+ # See https://docs.github.com/en/actions/concepts/security/openid-connect
13+ # and https://docs.npmjs.com/trusted-publishers.
14+ id-token : write
15+ contents : read
16+
1017jobs :
1118 lint :
1219 name : ✅ Lint
1320 runs-on : ubuntu-latest
1421 steps :
15- - uses : actions/checkout@v4
22+ - uses : actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 # 4.3.1
1623 - name : Setup Node
17- uses : actions/setup-node@v4
24+ uses : actions/setup-node@6044e13b5dc448c55e2357c09f80417699197238 # v6.2.0
1825 with :
1926 node-version : ${{env.NODE_VERSION}}
2027 - run : npm ci
2330 name : Unit Test
2431 runs-on : ubuntu-latest
2532 steps :
26- - uses : actions/checkout@v4
33+ - uses : actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 # 4.3.1
2734 - name : Setup Node
28- uses : actions/setup-node@v4
35+ uses : actions/setup-node@6044e13b5dc448c55e2357c09f80417699197238 # v6.2.0
2936 with :
3037 node-version : ${{env.NODE_VERSION}}
3138 - run : npm ci
3441 name : Type Check
3542 runs-on : ubuntu-latest
3643 steps :
37- - uses : actions/checkout@v4
44+ - uses : actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 # 4.3.1
3845 - name : Setup Node
39- uses : actions/setup-node@v4
46+ uses : actions/setup-node@6044e13b5dc448c55e2357c09f80417699197238 # v6.2.0
4047 with :
4148 node-version : ${{env.NODE_VERSION}}
4249 - run : npm ci
4956 needs : [lint, typeCheck, test]
5057 runs-on : ubuntu-latest
5158 steps :
52- - uses : actions/checkout@v4
53- - uses : actions/setup-node@v4
59+ - uses : actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 # 4.3.1
60+ - uses : actions/setup-node@6044e13b5dc448c55e2357c09f80417699197238 # v6.2.0
5461 with :
5562 node-version : ${{env.NODE_VERSION}}
5663 - run : npm ci
@@ -70,13 +77,12 @@ jobs:
7077 needs : [lint, typeCheck, test]
7178 runs-on : ubuntu-latest
7279 steps :
73- - uses : actions/checkout@v4
74- - uses : actions/setup-node@v4
80+ - uses : actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 # 4.3.1
81+ - uses : actions/setup-node@6044e13b5dc448c55e2357c09f80417699197238 # v6.2.0
7582 with :
7683 node-version : ${{env.NODE_VERSION}}
7784 registry-url : https://registry.npmjs.org/
85+ package-manager-cache : false # Do not cache when publishing to prevent cache pollution attacks
7886 - run : npm ci
7987 - run : npm run build
80- - run : npm publish
81- env :
82- NODE_AUTH_TOKEN : ${{secrets.NPM_TOKEN}}
88+ - run : npm publish --provenance # Provenance required for Trusted Publishers
0 commit comments