Skip to content

chore: enforce min TS version #2904

chore: enforce min TS version

chore: enforce min TS version #2904

Workflow file for this run

name: tests
on:
push:
branches: [master, v*]
pull_request:
branches: [master, v*]
jobs:
node:
name: Node.js
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
node-version: [18.x, 20.x, 22.x]
steps:
- uses: actions/checkout@v4
- name: Use Node.js ${{ matrix.node-version }}
uses: actions/setup-node@v4
with:
node-version: ${{ matrix.node-version }}
cache: 'npm'
- name: Install dependencies
run: npm ci
- name: Run docker compose
run: docker compose up -d
- name: Run node tests
run: npm test
- name: Run esbuild test
run: npm run test:esbuild
node-with-transformer:
name: Node.js /w transformer
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
node-version: [18.x, 20.x, 22.x]
steps:
- uses: actions/checkout@v4
- name: Use Node.js ${{ matrix.node-version }}
uses: actions/setup-node@v4
with:
node-version: ${{ matrix.node-version }}
cache: 'npm'
- name: Install dependencies
run: npm ci
- name: Run docker compose
run: docker compose up -d
- name: Run node tests with transformer
run: TEST_TRANSFORMER=1 npm test
deno:
name: Deno
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
deno-version: [1.46.x]
steps:
- uses: actions/checkout@v4
- name: Use Node.js
uses: actions/setup-node@v4
with:
node-version: 22.x
cache: 'npm'
- name: Install dependencies
run: npm ci
- name: Use Deno ${{ matrix.deno-version }}
uses: denoland/setup-deno@v1
with:
deno-version: ${{ matrix.deno-version }}
- name: Run docker compose
run: docker compose up -d
- name: Run deno tests
run: npm run test:deno
bun:
name: Bun
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
bun-version: [1.1.26]
steps:
- uses: actions/checkout@v4
- name: Use Node.js
uses: actions/setup-node@v4
with:
node-version: 22.x
cache: 'npm'
- name: Install dependencies
run: npm ci
- name: Use Bun ${{ matrix.bun-version }}
uses: oven-sh/setup-bun@v2
with:
bun-version: ${{ matrix.bun-version }}
- name: Run docker compose
run: docker compose up -d
- name: Run bun tests
run: npm run test:bun
browser:
name: Browser
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Use Node.js
uses: actions/setup-node@v4
with:
node-version: 22.x
cache: 'npm'
- name: Install dependencies
run: npm ci
- name: Install playwright
run: npx playwright install chromium
- name: Run browser tests
run: npm run test:browser
cloudflare-workers:
name: Cloudflare Workers
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Use Node.js
uses: actions/setup-node@v4
with:
node-version: 22.x
cache: 'npm'
- name: Install dependencies
run: npm ci
- name: Run docker compose
run: docker compose up -d
- name: Run cloudflare workers test
run: npm run test:cloudflare-workers
older-typescript-version:
name: Older TypeScript version
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
typescript-version: [
^4.6, # 28.2.2022 https://devblogs.microsoft.com/typescript/announcing-typescript-4-6/
^4.7, # 24.5.2022 https://devblogs.microsoft.com/typescript/announcing-typescript-4-7/
^4.8, # 25.8.2022 https://devblogs.microsoft.com/typescript/announcing-typescript-4-8/
^4.9, # 15.11.2022 https://devblogs.microsoft.com/typescript/announcing-typescript-4-9/
^5.0, # 16.3.2023 https://devblogs.microsoft.com/typescript/announcing-typescript-5-0/
^5.2, # 24.8.2023 https://devblogs.microsoft.com/typescript/announcing-typescript-5-1/ https://devblogs.microsoft.com/typescript/announcing-typescript-5-2/
^5.3, # 20.11.2023 https://devblogs.microsoft.com/typescript/announcing-typescript-5-3/
^5.4, # 6.3.2024 https://devblogs.microsoft.com/typescript/announcing-typescript-5-4/
]
steps:
- uses: actions/checkout@v4
- name: Use Node.js
uses: actions/setup-node@v4
with:
node-version: 18.x
cache: 'npm'
- name: Install dependencies
run: npm ci
- name: Run build with newer TypeScript
run: npm run build
- name: Install older TypeScript
run: npm i -D typescript@${{ matrix.typescript-version }} tsd@${{ fromJson('{ "^4.6":"0.20.0", "^4.7":"0.22.0", "^4.8":"0.24.1", "^4.9":"0.27.0", "^5.0":"0.28.1", "^5.2":"0.29.0", "^5.3":"0.30.7", "^5.4":"0.31.2" }')[matrix.typescript-version] }}
- name: Exclude non-backward compatible tests
run: npx tsx ./scripts/exclude-test-files-for-backwards-compat.mts
- name: Run tests with older TypeScript
run: npm run test:typings && npm run test:node:build