ci: use Deno v2
(#3506)
#19
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: ci | |
on: | |
push: | |
branches: [main, next] | |
pull_request: | |
branches: ['*'] | |
paths-ignore: | |
- 'docs/**' | |
- '.vscode/**' | |
- 'README.md' | |
- '.gitignore' | |
- 'LICENSE' | |
jobs: | |
coverage: | |
name: 'Coverage' | |
runs-on: ubuntu-latest | |
needs: | |
- main | |
- bun | |
- fastly | |
- node | |
- workerd | |
- lambda | |
- lambda-edge | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: actions/download-artifact@v4 | |
with: | |
pattern: coverage-* | |
merge-multiple: true | |
path: ./coverage | |
- uses: codecov/codecov-action@v4 | |
with: | |
fail_ci_if_error: true | |
directory: ./coverage | |
env: | |
CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }} | |
main: | |
name: 'Main' | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: actions/setup-node@v4 | |
with: | |
node-version: '20.x' | |
- uses: oven-sh/setup-bun@v1 | |
with: | |
bun-version: '1.1.16' | |
- run: bun install | |
- run: bun run format | |
- run: bun run lint | |
- run: bun run build | |
- run: bun run test | |
- uses: actions/upload-artifact@v4 | |
with: | |
name: coverage-main | |
path: coverage/ | |
jsr-dry-run: | |
name: "Checking if it's valid for JSR" | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: denoland/setup-deno@v2 | |
with: | |
deno-version: v2.x | |
- uses: oven-sh/setup-bun@v1 | |
- run: bunx jsr publish --dry-run | |
deno: | |
name: 'Deno' | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: denoland/setup-deno@v1 | |
with: | |
deno-version: v1.x | |
- run: env NAME=Deno deno test --coverage=coverage/raw/deno-runtime --allow-read --allow-env --allow-write --allow-net -c runtime-tests/deno/deno.json runtime-tests/deno | |
- run: deno test -c runtime-tests/deno-jsx/deno.precompile.json --coverage=coverage/raw/deno-precompile-jsx runtime-tests/deno-jsx | |
- run: deno test -c runtime-tests/deno-jsx/deno.react-jsx.json --coverage=coverage/raw/deno-react-jsx runtime-tests/deno-jsx | |
- uses: actions/upload-artifact@v4 | |
with: | |
name: coverage-deno | |
path: coverage/ | |
bun: | |
name: 'Bun' | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: oven-sh/setup-bun@v1 | |
with: | |
bun-version: '1.1.16' | |
- run: bun run test:bun | |
- uses: actions/upload-artifact@v4 | |
with: | |
name: coverage-bun | |
path: coverage/ | |
fastly: | |
name: 'Fastly Compute' | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: oven-sh/setup-bun@v1 | |
- run: bun install | |
- run: bun run build | |
- run: bun run test:fastly | |
- uses: actions/upload-artifact@v4 | |
with: | |
name: coverage-fastly | |
path: coverage/ | |
node: | |
name: 'Node.js v${{ matrix.node }}' | |
runs-on: ubuntu-latest | |
strategy: | |
matrix: | |
node: ['18.18.2', '20.x', '22.x'] | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: actions/setup-node@v4 | |
with: | |
node-version: ${{ matrix.node }} | |
- uses: oven-sh/setup-bun@v1 | |
- run: bun install | |
- run: bun run build | |
- run: bun run test:node | |
- uses: actions/upload-artifact@v4 | |
if: matrix.node == '22.x' | |
with: | |
name: coverage-node | |
path: coverage/ | |
workerd: | |
name: 'workerd' | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: actions/setup-node@v4 | |
with: | |
node-version: '20.x' | |
- uses: oven-sh/setup-bun@v1 | |
- run: bun install | |
- run: bun run build | |
- run: bun run test:workerd | |
- uses: actions/upload-artifact@v4 | |
with: | |
name: coverage-workerd | |
path: coverage/ | |
lambda: | |
name: 'AWS Lambda' | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: oven-sh/setup-bun@v1 | |
- run: bun install | |
- run: bun run build | |
- run: bun run test:lambda | |
- uses: actions/upload-artifact@v4 | |
with: | |
name: coverage-lambda | |
path: coverage/ | |
lambda-edge: | |
name: 'Lambda@Edge' | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: oven-sh/setup-bun@v1 | |
- run: bun install --frozen-lockfile | |
- run: bun run build | |
- run: bun run test:lambda-edge | |
- uses: actions/upload-artifact@v4 | |
with: | |
name: coverage-lambda-edge | |
path: coverage/ | |
perf-measures-type-check-on-pr: | |
runs-on: ubuntu-latest | |
if: github.event_name == 'pull_request' | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: oven-sh/setup-bun@v1 | |
- run: bun install | |
- uses: actions/cache/restore@v4 | |
with: | |
path: perf-measures/type-check/previous-result.txt | |
restore-keys: | | |
type-check-perf-previous-result- | |
key: type-check-perf-previous-result- | |
- run: bun scripts/generate-app.ts | |
working-directory: perf-measures/type-check | |
- run: bun tsc -p tsconfig.build.json --diagnostics > result.txt | |
working-directory: perf-measures/type-check | |
- run: | | |
{ | |
echo 'COMPARISON<<EOF' | |
bun scripts/process-results.ts | column -s '|' -t | |
echo 'EOF' | |
} >> "$GITHUB_ENV" | |
working-directory: perf-measures/type-check | |
- run: echo "$COMPARISON" | |
name: display comparison | |
perf-measures-type-check-on-main: | |
runs-on: ubuntu-latest | |
if: github.ref == 'refs/heads/main' | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: oven-sh/setup-bun@v1 | |
- run: bun install | |
- run: bun scripts/generate-app.ts | |
working-directory: perf-measures/type-check | |
- run: bun tsc -p tsconfig.build.json --diagnostics > previous-result.txt | |
working-directory: perf-measures/type-check | |
- uses: actions/cache/save@v4 | |
with: | |
path: perf-measures/type-check/previous-result.txt | |
key: type-check-perf-previous-result-${{ github.sha }} |