ci: split Woodpecker pipelines by scope
- unit.yml: unit tests on every push and pull_request, all branches. - code-runner.yml: PR to dev/main, gated on src/wrenn/code_runner/** or tests/test_code_runner_*.py; runs `make test-code-runner`. - integration.yml: PR to dev/main, gated on src/** excluding src/wrenn/code_runner/**; runs `make test-integration`. E2E pipelines require a src/** change, so docs/test-only PRs only trigger the unit pipeline. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
18
.woodpecker/code-runner.yml
Normal file
18
.woodpecker/code-runner.yml
Normal file
@ -0,0 +1,18 @@
|
||||
# E2E — code_runner. PR to dev/main when code_runner sources/tests change.
|
||||
when:
|
||||
- event: pull_request
|
||||
branch: [main, dev]
|
||||
path:
|
||||
include:
|
||||
- "src/wrenn/code_runner/**"
|
||||
- "tests/test_code_runner_*.py"
|
||||
|
||||
steps:
|
||||
test-code-runner:
|
||||
image: ghcr.io/astral-sh/uv:python3.13-bookworm
|
||||
environment:
|
||||
WRENN_API_KEY:
|
||||
from_secret: WRENN_API_KEY
|
||||
commands:
|
||||
- uv sync --dev
|
||||
- make test-code-runner
|
||||
21
.woodpecker/integration.yml
Normal file
21
.woodpecker/integration.yml
Normal file
@ -0,0 +1,21 @@
|
||||
# E2E — integration. PR to dev/main when non-code_runner src changes.
|
||||
# Path filter: include src/** but exclude src/wrenn/code_runner/** so the
|
||||
# dedicated code-runner pipeline owns that surface.
|
||||
when:
|
||||
- event: pull_request
|
||||
branch: [main, dev]
|
||||
path:
|
||||
include:
|
||||
- "src/**"
|
||||
exclude:
|
||||
- "src/wrenn/code_runner/**"
|
||||
|
||||
steps:
|
||||
test-integration:
|
||||
image: ghcr.io/astral-sh/uv:python3.13-bookworm
|
||||
environment:
|
||||
WRENN_API_KEY:
|
||||
from_secret: WRENN_API_KEY
|
||||
commands:
|
||||
- uv sync --dev
|
||||
- make test-integration
|
||||
11
.woodpecker/unit.yml
Normal file
11
.woodpecker/unit.yml
Normal file
@ -0,0 +1,11 @@
|
||||
# Unit tests — every push and pull_request, all branches.
|
||||
when:
|
||||
- event: push
|
||||
- event: pull_request
|
||||
|
||||
steps:
|
||||
unit-tests:
|
||||
image: ghcr.io/astral-sh/uv:python3.13-bookworm
|
||||
commands:
|
||||
- uv sync --dev
|
||||
- uv run pytest -m "not integration" -v
|
||||
Reference in New Issue
Block a user