Skip to content

Commit 9aa5fd2

Browse files
committed
1 parent 9f9baf3 commit 9aa5fd2

File tree

3 files changed

+1599
-23
lines changed

3 files changed

+1599
-23
lines changed

.github/workflows/continuous-integration.yml

+64-23
Original file line numberDiff line numberDiff line change
@@ -9,66 +9,107 @@ on:
99
schedule:
1010
- cron: '0 2 * * 1' # At 02:00 on Monday
1111

12-
env:
13-
NODE_OPTIONS: --max-old-space-size=4096
12+
permissions: {}
1413

1514
jobs:
1615
test:
1716
name: Test
18-
timeout-minutes: 15
17+
timeout-minutes: 5
1918
strategy:
2019
matrix:
2120
os: [ubuntu-latest]
22-
node-version: [16, 18]
21+
node-version:
22+
- 16
23+
- 18
24+
- 20
25+
- 21
2326
include:
2427
- os: macos-latest
25-
node-version: 16 # LTS
28+
node-version: 20 # LTS
29+
- os: windows-latest
30+
node-version: 20 # LTS
2631
fail-fast: false
2732
runs-on: ${{ matrix.os }}
2833
steps:
29-
- uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 # v4
34+
- uses: step-security/harden-runner@1b05615854632b887b69ae1be8cbefe72d3ae423 # v2.6.0
35+
if: ${{ matrix.os == 'ubuntu-latest' }}
3036
with:
31-
fetch-depth: 0
37+
disable-sudo: true
38+
egress-policy: block
39+
allowed-endpoints: >
40+
github.com:443
41+
registry.npmjs.org:443
42+
- uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1
3243
- name: Use Node.js ${{ matrix.node-version }}
33-
uses: actions/setup-node@v3
44+
uses: actions/setup-node@8f152de45cc393bb48ce5d89d36b731f54556e65 # v4.0.0
3445
with:
3546
node-version: ${{ matrix.node-version }}
47+
cache: npm
3648
- name: Bootstrap project
37-
run: |
38-
npm ci --ignore-scripts
39-
- uses: Yuri6037/[email protected]
49+
run: npm ci --ignore-scripts --prefer-offline
50+
- uses: Yuri6037/Action-FakeTTY@1abc69c7d530815855caedcd73842bae5687c1a6 # v1.1
4051
- name: Run tests
4152
run: faketty npm test --ignore-scripts
4253

4354
code-lint:
4455
name: Code Lint
4556
runs-on: ubuntu-latest
4657
steps:
47-
- uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 # v4
48-
- name: Use Node.js 16
49-
uses: actions/setup-node@v3
58+
- uses: step-security/harden-runner@1b05615854632b887b69ae1be8cbefe72d3ae423 # v2.6.0
59+
with:
60+
disable-sudo: true
61+
egress-policy: block
62+
allowed-endpoints: >
63+
github.com:443
64+
registry.npmjs.org:443
65+
- uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1
66+
- uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1
67+
- name: Use Node.js 20
68+
uses: actions/setup-node@8f152de45cc393bb48ce5d89d36b731f54556e65 # v4.0.0
5069
with:
51-
node-version: 16
70+
node-version: 20
71+
cache: 'npm'
5272
- name: Bootstrap project
5373
run: |
54-
npm ci --ignore-scripts
74+
npm ci \
75+
--ignore-scripts \
76+
--prefer-offline
5577
- name: Verify code linting
56-
run: npm run lint
78+
run: npm run lint --ignore-scripts
5779

5880
commit-lint:
5981
name: Commit Lint
6082
runs-on: ubuntu-latest
6183
if: ${{ github.event.pull_request }}
6284
steps:
63-
- uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 # v4
85+
- uses: step-security/harden-runner@1b05615854632b887b69ae1be8cbefe72d3ae423 # v2.6.0
86+
with:
87+
disable-sudo: true
88+
egress-policy: audit
89+
allowed-endpoints: >
90+
github.com:443
91+
registry.npmjs.org:443
92+
- uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1
6493
with:
6594
fetch-depth: 0
66-
- name: Use Node.js 16
67-
uses: actions/setup-node@v3
95+
- name: Use Node.js 20
96+
uses: actions/setup-node@8f152de45cc393bb48ce5d89d36b731f54556e65 # v4.0.0
6897
with:
69-
node-version: 16
98+
node-version: 20
99+
cache: npm
70100
- name: Bootstrap project
71101
run: |
72-
npm ci --ignore-scripts
102+
npm ci \
103+
--ignore-scripts \
104+
--prefer-offline
73105
- name: Verify commit linting
74-
run: npx commitlint --from origin/master --to HEAD --verbose
106+
run: |
107+
npm exec \
108+
--no-install \
109+
--package=@commitlint/cli \
110+
-- \
111+
commitlint \
112+
--from=origin/master \
113+
--to=HEAD \
114+
--verbose
115+

0 commit comments

Comments
 (0)