Update PolicyEngine US #4716
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: Check formatting | |
| uses: "lgeiger/black-action@master" | |
| with: | |
| args: ". -l 79 --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: 100 | |
| repository: ${{ github.event.pull_request.head.repo.full_name }} | |
| ref: ${{ github.event.pull_request.head.ref }} | |
| 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.13 | |
| - name: Install dependencies | |
| run: uv pip install -e ".[dev]" --system | |
| - name: Install dependencies | |
| run: uv pip install "yaml-changelog>=0.1.7" --system | |
| - name: Build changelog | |
| run: make changelog | |
| - 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: States (excl NY) & 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.13 | |
| - 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) | |
| env: | |
| PYTHONUNBUFFERED: 1 | |
| run: | | |
| echo "Running non-structural YAML tests (states)..." | |
| uv run make test-yaml-no-structural-states | |
| - name: Run Python-based tests | |
| env: | |
| PYTHONUNBUFFERED: 1 | |
| run: | | |
| echo "Running Python-based tests..." | |
| uv run make test-other | |
| NonStructural-Other: | |
| name: Baseline (incl NY) & Reform | |
| 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.13 | |
| - 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 | |
| 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.13 | |
| - 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.13 | |
| - 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.13 | |
| - 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 }} |