Merge pull request #7687 from PolicyEngine/cdcc-fix-oh-v2 #5013
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
| name: Push | |
| on: | |
| push: | |
| branches: [main] | |
| jobs: | |
| Lint: | |
| runs-on: ubuntu-latest | |
| if: | | |
| (github.repository == 'PolicyEngine/policyengine-us') | |
| && (github.event.head_commit.message == 'Update PolicyEngine US') | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - name: Install uv | |
| uses: astral-sh/setup-uv@v5 | |
| - name: Install dependencies | |
| run: uv sync --extra dev | |
| - name: Check formatting | |
| run: uv run ruff format --check . | |
| versioning: | |
| name: Update versioning | |
| if: | | |
| (github.repository == 'PolicyEngine/policyengine-us') | |
| && !(github.event.head_commit.message == 'Update PolicyEngine US') | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v4 | |
| with: | |
| fetch-depth: 0 | |
| token: ${{ secrets.POLICYENGINE_GITHUB }} | |
| - name: Install uv | |
| uses: astral-sh/setup-uv@v5 | |
| - name: Set up Python | |
| uses: actions/setup-python@v5 | |
| with: | |
| python-version: 3.14 | |
| - name: Install dependencies | |
| run: uv pip install towncrier --system | |
| - name: Bump version and build changelog | |
| run: | | |
| python .github/bump_version.py | |
| VERSION=$(python -c "import re; print(re.search(r'version = \"(.+?)\"', open('pyproject.toml').read()).group(1))") | |
| towncrier build --yes --version "$VERSION" | |
| - name: Update changelog | |
| uses: EndBug/add-and-commit@v9 | |
| with: | |
| add: "." | |
| committer_name: Github Actions[bot] | |
| author_name: Github Actions[bot] | |
| message: Update PolicyEngine US | |
| github_token: ${{ secrets.POLICYENGINE_GITHUB }} | |
| fetch: false | |
| NonStructural-States: | |
| name: Baseline States | |
| runs-on: ubuntu-latest | |
| if: | | |
| (github.repository == 'PolicyEngine/policyengine-us') | |
| && (github.event.head_commit.message == 'Update PolicyEngine US') | |
| steps: | |
| - name: Checkout repo | |
| uses: actions/checkout@v4 | |
| - name: Set up Python | |
| uses: actions/setup-python@v5 | |
| with: | |
| python-version: 3.14 | |
| - name: Install uv | |
| uses: astral-sh/setup-uv@v5 | |
| - name: Install dependencies | |
| run: uv sync --dev | |
| - name: Turn off default branching | |
| shell: bash | |
| run: bash ./update_itemization.sh | |
| - name: Run non-structural YAML tests (states in 3 batches) | |
| env: | |
| PYTHONUNBUFFERED: 1 | |
| run: | | |
| echo "Running non-structural YAML tests (states, 3 batches)..." | |
| uv run make test-yaml-no-structural-states | |
| NonStructural-Other: | |
| name: Baseline (excl States) & Reform & Python | |
| runs-on: ubuntu-latest | |
| if: | | |
| (github.repository == 'PolicyEngine/policyengine-us') | |
| && (github.event.head_commit.message == 'Update PolicyEngine US') | |
| steps: | |
| - name: Checkout repo | |
| uses: actions/checkout@v4 | |
| - name: Set up Python | |
| uses: actions/setup-python@v5 | |
| with: | |
| python-version: 3.14 | |
| - name: Install uv | |
| uses: astral-sh/setup-uv@v5 | |
| - name: Install dependencies | |
| run: uv sync --dev | |
| - name: Turn off default branching | |
| shell: bash | |
| run: bash ./update_itemization.sh | |
| - name: Run non-structural YAML tests (other) | |
| env: | |
| PYTHONUNBUFFERED: 1 | |
| run: | | |
| echo "Running non-structural YAML tests (other)..." | |
| uv run make test-yaml-no-structural-other | |
| - name: Run Python-based tests | |
| env: | |
| PYTHONUNBUFFERED: 1 | |
| run: | | |
| echo "Running Python-based tests..." | |
| uv run make test-other | |
| Structural-Heavy: | |
| name: Structural (States + Congress) | |
| runs-on: ubuntu-latest | |
| if: | | |
| (github.repository == 'PolicyEngine/policyengine-us') | |
| && (github.event.head_commit.message == 'Update PolicyEngine US') | |
| steps: | |
| - name: Checkout repo | |
| uses: actions/checkout@v4 | |
| - name: Set up Python | |
| uses: actions/setup-python@v5 | |
| with: | |
| python-version: 3.14 | |
| - name: Install uv | |
| uses: astral-sh/setup-uv@v5 | |
| - name: Install dependencies | |
| run: uv sync --dev | |
| - name: Turn off default branching | |
| shell: bash | |
| run: bash ./update_itemization.sh | |
| - name: Run heavy structural YAML tests (states + congress) | |
| env: | |
| PYTHONUNBUFFERED: 1 | |
| run: | | |
| echo "Running heavy structural YAML tests..." | |
| uv run make test-yaml-structural-heavy | |
| Structural: | |
| name: Structural (Other) | |
| runs-on: ubuntu-latest | |
| if: | | |
| (github.repository == 'PolicyEngine/policyengine-us') | |
| && (github.event.head_commit.message == 'Update PolicyEngine US') | |
| steps: | |
| - name: Checkout repo | |
| uses: actions/checkout@v4 | |
| - name: Set up Python | |
| uses: actions/setup-python@v5 | |
| with: | |
| python-version: 3.14 | |
| - name: Install uv | |
| uses: astral-sh/setup-uv@v5 | |
| - name: Install dependencies | |
| run: uv sync --dev | |
| - name: Turn off default branching | |
| shell: bash | |
| run: bash ./update_itemization.sh | |
| - name: Run structural YAML tests | |
| env: | |
| PYTHONUNBUFFERED: 1 | |
| run: | | |
| echo "Running structural YAML tests..." | |
| uv run make test-yaml-structural | |
| Publish: | |
| runs-on: ubuntu-latest | |
| if: | | |
| (github.repository == 'PolicyEngine/policyengine-us') | |
| && (github.event.head_commit.message == 'Update PolicyEngine US') | |
| needs: [NonStructural-States, NonStructural-Other, Structural, Structural-Heavy] | |
| steps: | |
| - name: Checkout repo | |
| uses: actions/checkout@v4 | |
| - name: Set up Python | |
| uses: actions/setup-python@v5 | |
| with: | |
| python-version: 3.14 | |
| - name: Install uv | |
| uses: astral-sh/setup-uv@v5 | |
| - name: Install package | |
| run: uv pip install -e ".[dev]" --system | |
| - name: Build package | |
| run: make | |
| - name: Publish a Python distribution to PyPI | |
| uses: pypa/gh-action-pypi-publish@release/v1 | |
| with: | |
| user: __token__ | |
| password: ${{ secrets.PYPI }} | |
| skip-existing: true | |
| Deploy: | |
| if: | | |
| (github.repository == 'PolicyEngine/policyengine-us') | |
| && (github.event.head_commit.message == 'Update PolicyEngine US') | |
| runs-on: ubuntu-latest | |
| env: | |
| GH_TOKEN: ${{ secrets.POLICYENGINE_GITHUB }} | |
| steps: | |
| - name: Checkout repo | |
| uses: actions/checkout@v2 | |
| with: | |
| repository: ${{ github.event.pull_request.head.repo.full_name }} | |
| ref: ${{ github.event.pull_request.head.ref }} | |
| token: ${{ secrets.POLICYENGINE_GITHUB }} | |
| - name: Setup Python | |
| uses: actions/setup-python@v2 | |
| with: | |
| python-version: 3.12 | |
| - name: Install Wheel and Pytest | |
| run: pip3 install wheel setuptools pytest==5.4.3 | |
| - name: Install package | |
| run: make install | |
| - name: Update API | |
| run: python .github/update_api.py | |
| env: | |
| GITHUB_TOKEN: ${{ secrets.POLICYENGINE_GITHUB }} |