3434 - name : ⎔ Setup Node
3535 uses : actions/setup-node@v4
3636 with :
37- node-version : 18
37+ node-version : 22
3838
3939 - name : 📥 Install dependencies
4040 run : npm install
@@ -43,33 +43,32 @@ jobs:
4343 run : npm run lint
4444
4545 test :
46- name :
47- 🧪 Test (Node@${{ matrix.node }} - ESLint@${{ matrix.eslint }} - ${{
46+ name : 🧪 Test (Node@${{ matrix.node }} - ESLint@${{ matrix.eslint }} - ${{
4847 matrix.os }})
4948 strategy :
5049 fail-fast : false
5150 matrix :
5251 eslint : [8]
53- node : [12.22.0, 12, 14.17.0, 14, 16.0.0, 16, 18.0.0, 18, 20, 22, 24]
52+ node : [22, 24]
5453 os : [ubuntu-latest]
5554 include :
5655 # On other platforms
5756 - os : windows-latest
5857 eslint : 8
59- node : 18
58+ node : 22
6059 - os : macos-latest
6160 eslint : 8
62- node : 18
61+ node : 22
6362 # On ESLint 9
6463 - eslint : 9
65- node : 18
64+ node : 22
6665 os : ubuntu-latest
6766 # On old ESLint versions
6867 - eslint : 7
69- node : 18
68+ node : 22
7069 os : ubuntu-latest
7170 - eslint : 6
72- node : 18
71+ node : 22
7372 os : ubuntu-latest
7473 # On the minimum supported ESLint/Node.js version
7574 - eslint : 6.0.0
@@ -84,25 +83,94 @@ jobs:
8483 uses : actions/setup-node@v4
8584 with :
8685 node-version : ${{ matrix.node }}
86+ check-latest : true
8787
8888 - name : 📥 Install dependencies
8989 run : npm install --legacy-peer-deps
9090
91+ - name : 📥 Build
92+ run : npm run build
93+
9194 - name : 📥 Install ESLint v${{ matrix.eslint }}
9295 run : npm install --save-dev eslint@${{ matrix.eslint }}
9396
9497 - name : ▶️ Run test script
98+ env :
99+ NODE_OPTIONS : --experimental-transform-types
95100 run : npm run test
96101
97102 - name : ⬆️ Upload coverage report
98103 uses : codecov/codecov-action@v4
99104
105+ are-the-types-wrong :
106+ name : 🤔 Are the types wrong?
107+ runs-on : ubuntu-latest
108+ steps :
109+ - name : ⬇️ Checkout repo
110+ uses : actions/checkout@v4
111+
112+ - name : ⎔ Setup Node
113+ uses : actions/setup-node@v4
114+ with :
115+ node-version : 22
116+
117+ - name : 📥 Install dependencies
118+ run : npm install --legacy-peer-deps
119+
120+ - name : ▶️ Run check-exports script
121+ run : npm run check-exports
122+
123+ - name : ▶️ Run typecheck script
124+ run : npm run typecheck
125+
126+ type-tests :
127+ name : 🧪 Type tests with ESLint ${{ matrix.eslint }} and TypeScript ${{ matrix.ts }}
128+ runs-on : ubuntu-latest
129+
130+ strategy :
131+ fail-fast : false
132+
133+ matrix :
134+ eslint : [8, 9]
135+ ts : ["5.7", "5.8", "5.9"]
136+
137+ steps :
138+ - name : ⬇️ Checkout repo
139+ uses : actions/checkout@v4
140+
141+ - name : ⎔ Setup Node
142+ uses : actions/setup-node@v4
143+ with :
144+ node-version : 22
145+
146+ - name : 📥 Install dependencies
147+ run : npm install
148+
149+ - name : Pack the package
150+ id : pack
151+ run : npm install "$(npm pack | tail -n1)"
152+
153+ - name : 📥 Uninstall @types/eslint
154+ if : matrix.eslint != 8
155+ run : npm uninstall @types/eslint
156+
157+ - name : 📥 Install ESLint version ${{ matrix.eslint }}
158+ run : npm install --save-dev eslint@${{ matrix.eslint }}
159+
160+ - name : 📥 Install TypeScript version ${{ matrix.ts }}
161+ run : npm install --save-dev typescript@${{ matrix.ts }} -f
162+
163+ - name : ▶️ Run typecheck script
164+ run : npm run typecheck
165+
166+ - name : 📝 List version of ESLint
167+ run : npm why eslint @types/eslint
168+
100169 release :
101170 name : 🚀 Release
102- needs : [ lint, test ]
171+ needs : [lint, test]
103172 runs-on : ubuntu-latest
104- if :
105- github.repository == 'eslint-community/eslint-plugin-eslint-comments' &&
173+ if : github.repository == 'eslint-community/eslint-plugin-eslint-comments' &&
106174 contains('refs/heads/main,refs/heads/next,refs/heads/beta,refs/heads/alpha',
107175 github.ref) && github.event_name == 'push'
108176 steps :
0 commit comments