build-test-duckdb.yml
Needs no service container (DuckDB is embedded) and runs only the DuckDB-marked test suite (pytest -q -m "duckdb" by default). Pass markers for a repo whose DuckDB-specific tests carry a different marker name (e.g. duckdbvss).
Always pair this with build-test.yml in a separate job. A repo's own addopts typically excludes db_dialect-marked tests from a plain pytest -q run by default — this workflow is what actually exercises those excluded tests. It deliberately does not also run the plain suite itself: that's build-test.yml's job. One job per dialect axis, matching oa-configurator's per-dialect marker design (and build-test-postgres-v2.yml's).
A repo with no tests matching markers does not fail on this: pytest's exit code 5 ("no tests collected") is treated as a pass for this step. Any other nonzero exit still fails the job.
Required status check name
As with build-test.yml, the prefix is the calling job name.
Inputs
| Input | Type | Default | Description |
|---|---|---|---|
python-version |
string | 3.12 |
Python version |
ruff |
boolean | true |
Whether to run ruff check . |
setup-commands |
string | '' |
Shell commands to run before tests (YAML block scalar, no script file needed) |
markers |
string | duckdb |
pytest -m marker expression selecting the DuckDB-only tests |
ty-src |
string | src/ |
Path passed to ty check for type checking |
Usage
The snippet below shows this workflow's own job. Every usage also needs a paired build-test.yml job for the default suite.
jobs:
build-test-duckdb:
uses: AustralianCancerDataNetwork/cava-devops/.github/workflows/build-test-duckdb.yml@main
With a different marker name:
jobs:
build-test-duckdb:
uses: AustralianCancerDataNetwork/cava-devops/.github/workflows/build-test-duckdb.yml@main
with:
markers: duckdbvss
Pairing with build-test.yml
Use distinct job names so both status checks are visible:
jobs:
build-test-sqlite:
uses: AustralianCancerDataNetwork/cava-devops/.github/workflows/build-test.yml@main
build-test-duckdb:
uses: AustralianCancerDataNetwork/cava-devops/.github/workflows/build-test-duckdb.yml@main
The required status check names become build-test-sqlite / test and build-test-duckdb / test.