Skip to content

feat(scripts/ci): achieve near-feature-parity with original CI workflow #39

feat(scripts/ci): achieve near-feature-parity with original CI workflow

feat(scripts/ci): achieve near-feature-parity with original CI workflow #39

Workflow file for this run

name: CI
on:
push:
pull_request:
env:
# Used to differentiate from other slices of the cache for other workflow runs, and to forcefully bust the cache when renamed
CACHE_KEY_BASE: ci@v1
jobs:
setup:
name: Setup
runs-on: ubuntu-latest
steps:
- name: Checkout repository
uses: actions/checkout@v5
- name: Set up Deno
uses: denoland/setup-deno@v2
with:
deno-version: 2.x
cache-hash: ${{ env.CACHE_KEY_BASE }}-${{ hashFiles('deno.lock') }}
- name: Install dependencies
run: deno install
test:
name: Test
needs: [setup]
runs-on: ubuntu-latest
steps:
- name: Checkout repository
uses: actions/checkout@v5
# Now the Deno cache should be warmed up, so this should be much faster
- name: Set up Deno
uses: denoland/setup-deno@v2
with:
deno-version: 2.x
cache-hash: ${{ env.CACHE_KEY_BASE }}-${{ hashFiles('deno.lock') }}
- name: Test
run: deno test -P --no-prompt --coverage --shuffle
- name: Upload coverage report
uses: actions/upload-artifact@v4
with:
name: coverage-report
path: |
coverage/html
coverage/lcov.info
- name: Upload raw coverage files
uses: actions/upload-artifact@v4
with:
name: coverage-report-raw
path: coverage/*.json
lint:
name: Lint
needs: [setup]
runs-on: ubuntu-latest
steps:
- name: Checkout repository
uses: actions/checkout@v5
# Now the Deno cache should be warmed up, so this should be much faster
- name: Set up Deno
uses: denoland/setup-deno@v2
with:
deno-version: 2.x
cache-hash: ${{ env.CACHE_KEY_BASE }}-${{ hashFiles('deno.lock') }}
- name: Lint
run: deno run --allow-env --allow-run --no-prompt npm:@biomejs/biome ci
check:
name: Check
needs: [setup]
runs-on: ubuntu-latest
steps:
- name: Checkout repository
uses: actions/checkout@v5
# Now the Deno cache should be warmed up, so this should be much faster
- name: Set up Deno
uses: denoland/setup-deno@v2
with:
deno-version: 2.x
cache-hash: ${{ env.CACHE_KEY_BASE }}-${{ hashFiles('deno.lock') }}
- name: Lint
run: deno check