Bump the python-packages group across 1 directory with 4 updates #73
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: "✅ Validate package deployment " | |
| on: | |
| pull_request: | |
| branches: [ master ] | |
| paths: | |
| - pyproject.toml | |
| - dbt_contracts/** | |
| - tests/** | |
| workflow_dispatch: | |
| workflow_call: | |
| outputs: | |
| artifact-name: | |
| description: "The name of the uploaded package artifacts" | |
| value: ${{ jobs.build.outputs.artifact-name }} | |
| permissions: | |
| contents: read | |
| env: | |
| python-version: '3.13' | |
| jobs: | |
| lint: | |
| name: 🔎 Lint | |
| runs-on: ubuntu-latest | |
| steps: | |
| - name: 🛒 Checkout | |
| uses: actions/checkout@v4 | |
| - name: ⚙️ Setup - Python 🐍 | |
| uses: actions/setup-python@v5 | |
| with: | |
| python-version: ${{ env.python-version }} | |
| - name: 🔎 Run flake8 | |
| uses: py-actions/flake8@v2 | |
| test: | |
| name: 🧪 Run tests | |
| runs-on: ${{ matrix.os }} | |
| needs: lint | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| os: [ ubuntu-latest ] | |
| name: [ 🐧 Linux ] | |
| python-version: [ 3.12, 3.13 ] | |
| include: | |
| # TODO: disabled due to bug in uv action causing post-step to fail | |
| # Issue tracker: https://github.com/astral-sh/setup-uv/issues/226 | |
| # - os: windows-latest | |
| # name: 🪟 Windows | |
| # python-version: 3.13 | |
| - os: macos-latest | |
| name: 🍎 Mac | |
| python-version: 3.13 | |
| steps: | |
| - name: 🛒 Checkout | |
| uses: actions/checkout@v4 | |
| with: | |
| fetch-depth: 0 | |
| - name: ⚙️ Setup - UV 🐍 | |
| uses: astral-sh/setup-uv@v6 | |
| with: | |
| python-version: ${{ matrix.python-version }} | |
| - name: 🧪 Run tests | |
| run: | | |
| uv run pytest -n auto -m "not manual" --junit-xml=test-results.xml | |
| - name: 📃 Publish test results report | |
| uses: pmeier/pytest-results-action@main | |
| with: | |
| path: test-results.xml | |
| summary: true | |
| display-options: fEX | |
| fail-on-empty: true | |
| title: Test results | ${{ matrix.name }} - 🐍 Python${{ matrix.python-version }} | |
| build: | |
| name: 📦 Build package | |
| runs-on: ubuntu-latest | |
| needs: test | |
| env: | |
| artifact-name: python-package-distribution | |
| outputs: | |
| artifact-name: ${{ env.artifact-name }} | |
| steps: | |
| - name: 🛒 Checkout | |
| uses: actions/checkout@v4 | |
| with: | |
| fetch-depth: 0 | |
| - name: ⚙️ Setup - UV 🐍 | |
| uses: astral-sh/setup-uv@v6 | |
| with: | |
| python-version: ${{ matrix.python-version }} | |
| - name: 📄 Sanitise readme | |
| run: | | |
| sed -i -r "s|\[\!(\w+)\]|**\\1:**|g" README.md | |
| - name: 🏗️ Build package | |
| run: | | |
| echo "Building artifacts for v$(uv run hatch version)" | |
| uv build | |
| - name: 📦 Upload package artifacts | |
| id: upload | |
| uses: actions/upload-artifact@v4 | |
| with: | |
| name: ${{ env.artifact-name }} | |
| path: dist/ | |
| if-no-files-found: error |