Update 2026-27 benefit and tax parameters #1273
Workflow file for this run
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| # Workflow that runs on code changes to a pull request. | |
| name: Code changes | |
| on: | |
| pull_request: | |
| branches: | |
| - main | |
| paths: | |
| - policyengine_uk/** | |
| - tests/** | |
| - .github/** | |
| - pyproject.toml | |
| - uv.lock | |
| workflow_dispatch: | |
| jobs: | |
| Python-Compat: | |
| name: Install + smoke-import (py${{ matrix.python-version }}) | |
| runs-on: ubuntu-latest | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| python-version: ["3.9", "3.10", "3.11", "3.12", "3.13", "3.14"] | |
| steps: | |
| - uses: actions/checkout@v6 | |
| - name: Set up Python ${{ matrix.python-version }} | |
| uses: actions/setup-python@v6 | |
| with: | |
| python-version: ${{ matrix.python-version }} | |
| - name: Install uv | |
| uses: astral-sh/setup-uv@v8.1.0 | |
| - name: Install package | |
| run: uv pip install --system . | |
| - name: Smoke-import | |
| run: python -c "import policyengine_uk; print('import OK')" | |
| Lint: | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v6 | |
| - name: Install uv | |
| uses: astral-sh/setup-uv@v8.1.0 | |
| - name: Check formatting | |
| run: uvx ruff format --check . | |
| BundleMetadataContract: | |
| name: Validate bundle metadata contract | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v6 | |
| - name: Set up Python | |
| uses: actions/setup-python@v6 | |
| with: | |
| python-version: "3.14" | |
| - name: Install uv | |
| uses: astral-sh/setup-uv@v8.1.0 | |
| - name: Install package | |
| run: uv pip install --system . | |
| - name: Install bundle validation tooling | |
| # Pin the test-only bundle contract dependency until policyengine-bundles | |
| # has published releases suitable for ordinary dependency specifiers. | |
| run: uv pip install --system "policyengine-bundles @ git+https://github.com/PolicyEngine/policyengine-bundles@8ae9f56fefcf89f69b8a7e3bc49928509c6207be" | |
| - name: Validate runtime metadata contract | |
| run: python -m pytest policyengine_uk/tests/test_build_metadata.py | |
| Test: | |
| runs-on: macos-latest | |
| permissions: | |
| contents: "read" | |
| id-token: "write" | |
| steps: | |
| - name: Checkout repo | |
| uses: actions/checkout@v6 | |
| - name: Install uv | |
| uses: astral-sh/setup-uv@v8.1.0 | |
| - name: Set up Python | |
| uses: actions/setup-python@v6 | |
| with: | |
| python-version: '3.13' | |
| - uses: "google-github-actions/auth@v3" | |
| with: | |
| workload_identity_provider: "projects/322898545428/locations/global/workloadIdentityPools/policyengine-research-id-pool/providers/prod-github-provider" | |
| service_account: "policyengine-research@policyengine-research.iam.gserviceaccount.com" | |
| - name: Install package | |
| run: uv pip install -e .[dev] --system | |
| - name: Install policyengine | |
| run: uv pip install policyengine --system | |
| - name: UV sync | |
| run: uv sync --extra dev | |
| - name: Run tests with coverage | |
| run: | | |
| # Only export token if non-empty (avoids 'Bearer ' error for Dependabot PRs) | |
| if [ -n "$HF_TOKEN_VALUE" ]; then | |
| export HUGGING_FACE_TOKEN="$HF_TOKEN_VALUE" | |
| fi | |
| make test | |
| env: | |
| HF_TOKEN_VALUE: ${{ secrets.HUGGING_FACE_TOKEN }} | |
| - name: Upload coverage to Codecov | |
| uses: codecov/codecov-action@v6 | |
| with: | |
| files: ./coverage.xml | |
| fail_ci_if_error: false | |
| verbose: true | |
| - name: Test documentation builds | |
| run: make documentation |