ci: shuffle deno tests in CI #23
Workflow file for this run
This file contains hidden or 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: | |
| 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 | |
| permissions: | |
| pull-requests: write | |
| 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 |