Skip to content

[pull] main from google:main #226

[pull] main from google:main

[pull] main from google:main #226

Workflow file for this run

name: Test
on:
push:
pull_request:
schedule:
- cron: '0 12 */4 * *'
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Use Node.js 22.x
uses: actions/setup-node@v4
with:
node-version: 22.x
- run: npm ci
- run: |
npm run build
cd build && ls -l
- uses: actions/upload-artifact@v4
with:
name: build
path: |
build
package.json
retention-days: 1
checks:
needs: build
runs-on: ubuntu-latest
env:
FORCE_COLOR: 3
steps:
- uses: actions/checkout@v4
- name: Use Node.js 22.x
uses: actions/setup-node@v4
with:
node-version: 22.x
- uses: actions/download-artifact@v4
with:
name: build
- run: npm ci
- name: Format
run: npm run fmt:check
- name: License
run: npm run test:license
- name: Size
run: npm run test:size
- name: Dep audit
run: npm run test:audit
- name: Circular
run: npm run test:circular
test:
needs: build
runs-on: ubuntu-latest
env:
FORCE_COLOR: 3
strategy:
matrix:
node-version: [16.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 }}
- uses: actions/download-artifact@v4
with:
name: build
- run: npm ci
- name: Unit & types tests
if: matrix.node-version == '20.x'
run: |
npm run test:coverage
npm run test:types
- name: Unit tests
if: matrix.node-version != '20.x'
run: npm run test:unit
timeout-minutes: 1
smoke-win32-node16:
runs-on: windows-latest
needs: build
steps:
- uses: actions/checkout@v4
- name: Use Node.js 16.x
uses: actions/setup-node@v4
with:
node-version: 16.x
- uses: actions/download-artifact@v4
with:
name: build
- run: npm run test:smoke:win32
timeout-minutes: 1
env:
FORCE_COLOR: 3
smoke-bun:
runs-on: ubuntu-latest
needs: build
steps:
- uses: actions/checkout@v4
- name: Setup Bun
uses: antongolub/action-setup-bun@v1
- uses: actions/download-artifact@v4
with:
name: build
- run: |
bun test ./test/smoke/bun.test.js
bun ./test/smoke/ts.test.ts
timeout-minutes: 1
env:
FORCE_COLOR: 3
smoke-deno:
runs-on: ubuntu-latest
needs: build
strategy:
matrix:
deno-version: [v1.x, v2.x]
steps:
- uses: actions/checkout@v4
- name: Setup Deno
uses: denoland/setup-deno@v2
with:
deno-version: ${{ matrix.deno-version }}
- run: deno install npm:types/node npm:types/fs-extra
- uses: actions/download-artifact@v4
with:
name: build
- run: deno test --allow-read --allow-sys --allow-env --allow-run ./test/smoke/deno.test.js
timeout-minutes: 1
env:
FORCE_COLOR: 3
smoke-node:
runs-on: ubuntu-latest
needs: build
strategy:
matrix:
node-version: [12, 14, 16, 18, 20, 22, 22-nightly, 23]
steps:
- uses: actions/checkout@v4
- name: Use Node.js ${{ matrix.node-version }}
uses: actions/setup-node@v4
with:
node-version: ${{ matrix.node-version }}
- uses: actions/download-artifact@v4
with:
name: build
- name: cjs smoke test
run: npm run test:smoke:cjs
- name: mjs smoke test
run: npm run test:smoke:mjs
- name: strip-types
if: matrix.node-version >= 22
run: npm run test:smoke:strip-types
smoke-ts:
runs-on: ubuntu-latest
needs: build
strategy:
matrix:
ts: [4, 5, rc]
steps:
- uses: actions/checkout@v4
- name: Use Node.js 22.x
uses: actions/setup-node@v4
with:
node-version: 22.x
- name: Install deps
run: npm ci
- name: Install TypeScript ${{ matrix.ts }}
run: npm i --force --no-package-lock typescript@${{ matrix.ts }}
- uses: actions/download-artifact@v4
with:
name: build
- name: tsc
run: npm run test:smoke:tsc
- name: tsx
run: npm run test:smoke:tsx
- name: ts-node
run: npm run test:smoke:ts-node