diff --git a/.github/workflows/tests.yaml b/.github/workflows/tests.yaml index 4c9c9984e911..bd90f5fc5cd1 100644 --- a/.github/workflows/tests.yaml +++ b/.github/workflows/tests.yaml @@ -523,8 +523,8 @@ jobs: token: cab4ace5-4f10-4027-8b5c-d79722234571 test-grammars: - # Currently tests lezer grammars. We could split that out into a separate - # job if we want when we add more. + # Tests the lezer & raku grammars. We could split these into separate jobs + # if we want when we add more. runs-on: ubuntu-24.04 needs: rules if: @@ -540,12 +540,28 @@ jobs: - name: Install dependencies working-directory: grammars/prql-lezer/ run: bun install - - name: Build grammar + - name: Build lezer grammar working-directory: grammars/prql-lezer/ run: bun run build - - name: Test grammar + - name: Test lezer grammar working-directory: grammars/prql-lezer/ run: bun run test + - name: 🦋 Setup Raku + uses: Raku/setup-raku@v1 + # `prove6` is the TAP harness that runs the whole `t/` directory in one + # command, as `grammars/raku/README.md` documents. `zef` ships with the + # rakudo archive that `setup-raku` installs. + # + # `--/test` skips the test suites of `App::Prove6` and its transitive + # deps, which `zef` would otherwise run before installing. The README + # recipe deliberately omits it — a human installing locally wants those + # to run; here they'd only turn the job red for reasons unrelated to the + # PRQL grammar. + - name: Install prove6 + run: zef install --/test App::Prove6 + - name: Test raku grammar + working-directory: grammars/raku/ + run: prove6 --lib t/ build-devcontainer: needs: rules