Skip to content

Align recovery delivery with Codex 0.153.4 and preserve bounded qualification evidence #109

Align recovery delivery with Codex 0.153.4 and preserve bounded qualification evidence

Align recovery delivery with Codex 0.153.4 and preserve bounded qualification evidence #109

name: PlanAnvil tests
on:
push:
branches:
- main
pull_request:
permissions:
contents: read
concurrency:
group: plananvil-tests-${{ github.ref }}
cancel-in-progress: true
env:
PYTHONDONTWRITEBYTECODE: "1"
jobs:
core:
name: core (${{ matrix.os }}, py${{ matrix.python-version }})
timeout-minutes: 15
strategy:
fail-fast: false
matrix:
os:
- ubuntu-latest
- macos-latest
- windows-latest
python-version:
- "3.11"
- "3.14"
runs-on: ${{ matrix.os }}
steps:
- name: Check out repository
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7
- name: Set up Python
uses: actions/setup-python@5fda3b95a4ea91299a34e894583c3862153e4b97 # v7
with:
python-version: ${{ matrix.python-version }}
- name: Configure Git fixture identity
run: |
git config --global user.name "PlanAnvil CI"
git config --global user.email "plananvil-ci@example.invalid"
git config --global commit.gpgsign false
git config --global protocol.file.allow always
- name: Compile deterministic scripts and hooks
run: python -m compileall -q .agents/skills/plan-anvil .codex/hooks tools tests
- name: Run core unit and integration tests
run: python -m unittest discover -s .agents/skills/plan-anvil/tests -v
- name: Execute qualification boundary regressions without Codex
run: python -m unittest discover -s tests -p "test_qualification_*.py" -v
- name: Check patch whitespace
run: git diff --check
distribution:
name: distribution and release candidate
runs-on: ubuntu-latest
timeout-minutes: 15
steps:
- name: Check out repository
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7
- name: Set up Python
uses: actions/setup-python@5fda3b95a4ea91299a34e894583c3862153e4b97 # v7
with:
python-version: "3.11"
- name: Configure Git fixture identity
run: |
git config --global user.name "PlanAnvil CI"
git config --global user.email "plananvil-ci@example.invalid"
git config --global commit.gpgsign false
git config --global protocol.file.allow always
- name: Run distribution and release tests
run: python -m unittest discover -s tests -v
- name: Validate prepared C01-C16 evidence templates
run: |
python tools/prepare_capabilities.py --target "$RUNNER_TEMP/plananvil-capabilities" --force
python tools/validate_capabilities.py --root "$RUNNER_TEMP/plananvil-capabilities"
- name: Validate release candidate metadata
run: python tools/release_check.py --candidate
- name: Build deterministic release archive
run: python tools/build_release.py --output "$RUNNER_TEMP/plananvil-dist"
- name: Check patch whitespace
run: git diff --check