Skip to content

Commit aef896c

Browse files
committed
ci: run napi tests on windows
1 parent 4cc19e7 commit aef896c

File tree

3 files changed

+18
-6
lines changed

3 files changed

+18
-6
lines changed

.github/workflows/ci.yml

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -169,8 +169,14 @@ jobs:
169169
170170
test-napi:
171171
name: Test NAPI
172-
runs-on: ubuntu-latest
172+
strategy:
173+
matrix:
174+
os: [ubuntu-latest, windows-latest]
175+
runs-on: ${{ matrix.os }}
173176
steps:
177+
- name: Enable long paths on Windows
178+
if: matrix.os == 'windows-latest'
179+
run: git config --system core.longpaths true
174180
- uses: taiki-e/checkout-action@b13d20b7cda4e2f325ef19895128f7ff735c0b3d # v1.3.1
175181
- uses: dorny/paths-filter@de90cc6fb38fc0963ad72b210f1f284cd68cea36 # v3.0.2
176182
id: filter

apps/oxlint/test/utils.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -55,6 +55,7 @@ export async function testFixtureWithCommand(options: TestFixtureOptions): Promi
5555
let expectedSnapshot = null;
5656
try {
5757
expectedSnapshot = await fs.readFile(snapshotPath, 'utf8');
58+
if (process.platform === 'win32') expectedSnapshot = expectedSnapshot.replace(/\r\n/g, '\n');
5859
} catch (err) {
5960
if (err?.code !== 'ENOENT') throw err;
6061
}

napi/parser/vitest.config.ts

Lines changed: 10 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,19 +1,24 @@
11
import { defineConfig } from 'vitest/config';
22

3-
const { env } = process;
3+
const { env, platform } = process;
44
const isEnabled = envValue => envValue === 'true' || envValue === '1';
5-
let exclude;
5+
const exclude = new Set<string>();
66
if (!isEnabled(env.RUN_LAZY_TESTS)) {
7-
exclude = ['lazy-deserialization.test.ts'];
8-
if (!isEnabled(env.RUN_RAW_TESTS) && !isEnabled(env.RUN_RAW_RANGE_TESTS)) exclude.push('parse-raw.test.ts');
7+
exclude.add('lazy-deserialization.test.ts');
8+
if (!isEnabled(env.RUN_RAW_TESTS) && !isEnabled(env.RUN_RAW_RANGE_TESTS)) exclude.add('parse-raw.test.ts');
9+
}
10+
// TinyPool doesn't seem to work on Windows with Vitest
11+
// Ref: https://github.com/vitest-dev/vitest/issues/8201
12+
if (platform === 'win32') {
13+
exclude.add('parse-raw.test.ts');
914
}
1015

1116
export default defineConfig({
1217
test: {
1318
diff: {
1419
expand: false,
1520
},
16-
exclude,
21+
exclude: [...exclude],
1722
},
1823
plugins: [
1924
// Enable Codspeed plugin in CI only

0 commit comments

Comments
 (0)