Files
restic-backup-docker/Taskfile.yml
Tobias KaupatandClaude Sonnet 5.5 9be33e3c26 build: run all test suites and aggregate the exit code
task test no longer stops at the first failing suite.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-20 09:17:03 +02:00

56 lines
1.2 KiB
YAML

version: "3"
vars:
IMAGE: '{{.IMAGE | default "restic-backup-docker:test"}}'
env:
IMAGE: "{{.IMAGE}}"
tasks:
default:
cmds:
- task --list
silent: true
build:
desc: Build the image under test
cmds:
- docker build --quiet -t {{.IMAGE}} .
lint:
desc: Lint the Python test suite with ruff
cmds:
- uv run ruff check tests
- uv run ruff format --check tests
test:
desc: Build the image and run all suites; every suite runs, any failure fails the task
cmds:
- task: build
- cmd: |
rc=0
{{.TASK_EXE}} test:structure || rc=1
{{.TASK_EXE}} test:compat || rc=1
{{.TASK_EXE}} test:features || rc=1
exit $rc
test:structure:
desc: Run container-structure-test against the image and remove its containers and volumes
cmds:
- uv run python tests/structure.py
test:compat:
desc: Run the compat tests
cmds:
- uv run pytest -m "not feature" {{.CLI_ARGS}}
test:features:
desc: Run the feature-gated tests
cmds:
- uv run pytest -m feature {{.CLI_ARGS}}
test:sabotage:
desc: Prove the compat tests go red on an image with a broken backup
cmds:
- uv run python tests/sabotage.py