diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index d66bc875f..f48704a63 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -16,7 +16,11 @@ concurrency: cancel-in-progress: ${{ github.event_name == 'pull_request' }} jobs: - checks: + # The four jobs below were one serial `checks` job. Splitting them lets + # GitHub run them concurrently, so a PR's wall-clock is the slowest job + # rather than the sum of all of them, and a lint or structural failure + # reports in about a minute instead of waiting behind the build. + lint: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 @@ -24,10 +28,37 @@ jobs: with: bun-version: latest - run: bun install --frozen-lockfile - - run: bun run typecheck - run: bun run lint + + typecheck: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + - uses: oven-sh/setup-bun@v2 + with: + bun-version: latest + - run: bun install --frozen-lockfile + - run: bun run typecheck + + build-test: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + - uses: oven-sh/setup-bun@v2 + with: + bun-version: latest + - run: bun install --frozen-lockfile - run: bun run build - run: bun run test + + structural: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + - uses: oven-sh/setup-bun@v2 + with: + bun-version: latest + - run: bun install --frozen-lockfile - name: Structural check self-tests run: bun test scripts/checks/test - run: bun run check:deletion