9
9
schedule :
10
10
- cron : ' 0 2 * * 1' # At 02:00 on Monday
11
11
12
- env :
13
- NODE_OPTIONS : --max-old-space-size=4096
12
+ permissions : {}
14
13
15
14
jobs :
16
15
test :
17
16
name : Test
18
- timeout-minutes : 15
17
+ timeout-minutes : 5
19
18
strategy :
20
19
matrix :
21
20
os : [ubuntu-latest]
22
- node-version : [16, 18]
21
+ node-version :
22
+ - 16
23
+ - 18
24
+ - 20
25
+ - 21
23
26
include :
24
27
- os : macos-latest
25
- node-version : 16 # LTS
28
+ node-version : 20 # LTS
29
+ - os : windows-latest
30
+ node-version : 20 # LTS
26
31
fail-fast : false
27
32
runs-on : ${{ matrix.os }}
28
33
steps :
29
- - uses : actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 # v4
34
+ - uses : step-security/harden-runner@1b05615854632b887b69ae1be8cbefe72d3ae423 # v2.6.0
35
+ if : ${{ matrix.os == 'ubuntu-latest' }}
30
36
with :
31
- fetch-depth : 0
37
+ egress-policy : audit
38
+ - uses : actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1
32
39
- name : Use Node.js ${{ matrix.node-version }}
33
- uses : actions/setup-node@v3
40
+ uses : actions/setup-node@8f152de45cc393bb48ce5d89d36b731f54556e65 # v4.0.0
34
41
with :
35
42
node-version : ${{ matrix.node-version }}
43
+ cache : npm
36
44
- name : Bootstrap project
37
- run : |
38
- npm ci --ignore-scripts
39
- -
uses :
Yuri6037/[email protected]
45
+ run : npm ci --ignore-scripts --prefer-offline
46
+ - uses : Yuri6037/Action-FakeTTY@1abc69c7d530815855caedcd73842bae5687c1a6 # v1.1
40
47
- name : Run tests
41
48
run : faketty npm test --ignore-scripts
42
49
43
50
code-lint :
44
51
name : Code Lint
45
52
runs-on : ubuntu-latest
46
53
steps :
47
- - uses : actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 # v4
48
- - name : Use Node.js 16
49
- uses : actions/setup-node@v3
54
+ - uses : step-security/harden-runner@1b05615854632b887b69ae1be8cbefe72d3ae423 # v2.6.0
55
+ if : ${{ matrix.os == 'ubuntu-latest' }}
56
+ with :
57
+ egress-policy : audit
58
+ - uses : actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1
59
+ - name : Use Node.js 20
60
+ uses : actions/setup-node@8f152de45cc393bb48ce5d89d36b731f54556e65 # v4.0.0
50
61
with :
51
- node-version : 16
62
+ node-version : 20
63
+ cache : ' npm'
52
64
- name : Bootstrap project
53
65
run : |
54
- npm ci --ignore-scripts
66
+ npm ci \
67
+ --ignore-scripts \
68
+ --prefer-offline
55
69
- name : Verify code linting
56
70
run : npm run lint
57
71
@@ -60,15 +74,31 @@ jobs:
60
74
runs-on : ubuntu-latest
61
75
if : ${{ github.event.pull_request }}
62
76
steps :
63
- - uses : actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 # v4
77
+ - uses : step-security/harden-runner@1b05615854632b887b69ae1be8cbefe72d3ae423 # v2.6.0
78
+ if : ${{ matrix.os == 'ubuntu-latest' }}
79
+ with :
80
+ egress-policy : audit
81
+ - uses : actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1
64
82
with :
65
83
fetch-depth : 0
66
- - name : Use Node.js 16
67
- uses : actions/setup-node@v3
84
+ - name : Use Node.js 20
85
+ uses : actions/setup-node@8f152de45cc393bb48ce5d89d36b731f54556e65 # v4.0.0
68
86
with :
69
- node-version : 16
87
+ node-version : 20
88
+ cache : npm
70
89
- name : Bootstrap project
71
90
run : |
72
- npm ci --ignore-scripts
91
+ npm ci \
92
+ --ignore-scripts \
93
+ --prefer-offline
73
94
- name : Verify commit linting
74
- run : npx commitlint --from origin/master --to HEAD --verbose
95
+ run : |
96
+ npm exec \
97
+ --no-install \
98
+ --package=@commitlint/cli \
99
+ -- \
100
+ commitlint \
101
+ --from=origin/master \
102
+ --to=HEAD \
103
+ --verbose
104
+
0 commit comments