ci: test against older TypeScript versions. #2880
Workflow file for this run
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: tests | |
on: | |
push: | |
branches: [master, v*] | |
pull_request: | |
branches: [master, v*] | |
jobs: | |
node: | |
name: Node.js | |
runs-on: ubuntu-latest | |
strategy: | |
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: | |
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: | |
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: | |
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 | |
old-typescript: | |
name: Minimum TypeScript version | |
runs-on: ubuntu-latest | |
strategy: | |
matrix: | |
typescript-version: [4.9.0] | |
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 docker compose | |
run: docker compose up -d | |
- name: Run build with newer TypeScript | |
run: npm run build | |
- name: Install old TypeScript | |
run: npm i -D typescript@${{ matrix.typescript-version }} | |
- name: Run tests with old TypeScript | |
run: npm run test:node:build && npm run test:node:run && npm run test:typings |