do not upload non-distribution files to PyPI; delete possible already… #84
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: main | |
| on: | |
| push: | |
| branches: ["**"] | |
| pull_request: | |
| branches: [master] | |
| workflow_dispatch: | |
| env: | |
| UV_CACHE_DIR: ${{ github.workspace }}/.uv-cache | |
| jobs: | |
| quality-checks: | |
| name: Code Quality Checks | |
| runs-on: ubuntu-24.04 | |
| steps: | |
| - name: Checkout code | |
| uses: actions/checkout@v4 | |
| - name: Install Just | |
| env: | |
| GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
| run: | | |
| curl -H "Authorization: Bearer $GITHUB_TOKEN" \ | |
| --proto '=https' --tlsv1.2 -sSf \ | |
| https://just.systems/install.sh | bash -s -- --to ~/bin | |
| echo "$HOME/bin" >> $GITHUB_PATH | |
| - name: Install uv (Astral) | |
| env: | |
| GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
| run: | | |
| export GITHUB_TOKEN | |
| curl -H "Authorization: Bearer $GITHUB_TOKEN" \ | |
| -LsSf https://astral.sh/uv/install.sh | sh | |
| echo "$HOME/.cargo/bin" >> $GITHUB_PATH | |
| - name: Verify toolchain installation | |
| run: | | |
| just --version | |
| uv --version | |
| - name: Setup uv cache | |
| uses: actions/cache@v4 | |
| with: | |
| path: ${{ env.UV_CACHE_DIR }} | |
| key: uv-cache-ubuntu-quality-${{ | |
| hashFiles('pyproject.toml') }} | |
| restore-keys: | | |
| uv-cache-ubuntu-quality- | |
| - name: Create Python environment and install tools | |
| run: | | |
| just create cpy314 | |
| just install-tools cpy314 | |
| - name: Lint code using Ruff | |
| run: just check-format cpy314 | |
| # - name: Run static type checking with mypy | |
| # run: just check-typing cpy314 | |
| # - name: Run tests and generate an HTML coverage report | |
| # run: just check-coverage cpy314 | |
| documentation: | |
| name: Documentation Build | |
| runs-on: ubuntu-24.04 | |
| steps: | |
| - name: Checkout code | |
| uses: actions/checkout@v4 | |
| - name: Install Just | |
| env: | |
| GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
| run: | | |
| curl -H "Authorization: Bearer $GITHUB_TOKEN" \ | |
| --proto '=https' --tlsv1.2 -sSf \ | |
| https://just.systems/install.sh | bash -s -- --to ~/bin | |
| echo "$HOME/bin" >> $GITHUB_PATH | |
| - name: Install uv (Astral) | |
| env: | |
| GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
| run: | | |
| export GITHUB_TOKEN | |
| curl -H "Authorization: Bearer $GITHUB_TOKEN" \ | |
| -LsSf https://astral.sh/uv/install.sh | sh | |
| echo "$HOME/.cargo/bin" >> $GITHUB_PATH | |
| - name: Verify toolchain installation | |
| run: | | |
| just --version | |
| uv --version | |
| - name: Setup uv cache | |
| uses: actions/cache@v4 | |
| with: | |
| path: ${{ env.UV_CACHE_DIR }} | |
| key: uv-cache-ubuntu-docs-${{ hashFiles('pyproject.toml') | |
| }} | |
| restore-keys: | | |
| uv-cache-ubuntu-docs- | |
| - name: Create Python environment and install tools | |
| run: | | |
| just create cpy314 | |
| just install-tools cpy314 | |
| - name: Build documentation | |
| run: just docs cpy314 | |
| - name: Upload documentation artifacts | |
| uses: actions/upload-artifact@v4 | |
| with: | |
| name: documentation | |
| path: docs/_build/html/ | |
| retention-days: 14 | |
| build-package: | |
| name: Package Build | |
| runs-on: ubuntu-24.04 | |
| needs: [quality-checks] | |
| strategy: | |
| matrix: | |
| python-env: [cpy314, cpy311, pypy311] | |
| steps: | |
| - name: Checkout code | |
| uses: actions/checkout@v4 | |
| - name: Install Just | |
| env: | |
| GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
| run: | | |
| curl -H "Authorization: Bearer $GITHUB_TOKEN" \ | |
| --proto '=https' --tlsv1.2 -sSf \ | |
| https://just.systems/install.sh | bash -s -- --to ~/bin | |
| echo "$HOME/bin" >> $GITHUB_PATH | |
| - name: Install uv (Astral) | |
| env: | |
| GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
| run: | | |
| export GITHUB_TOKEN | |
| curl -H "Authorization: Bearer $GITHUB_TOKEN" \ | |
| -LsSf https://astral.sh/uv/install.sh | sh | |
| echo "$HOME/.cargo/bin" >> $GITHUB_PATH | |
| - name: Verify toolchain installation | |
| run: | | |
| just --version | |
| uv --version | |
| - name: Setup uv cache | |
| uses: actions/cache@v4 | |
| with: | |
| path: ${{ env.UV_CACHE_DIR }} | |
| key: uv-cache-ubuntu-build-${{ matrix.python-env }}-${{ | |
| hashFiles('pyproject.toml') }} | |
| restore-keys: | | |
| uv-cache-ubuntu-build-${{ matrix.python-env }}- | |
| uv-cache-ubuntu-build- | |
| - name: Create Python environment and install tools | |
| run: | | |
| just create ${{ matrix.python-env }} | |
| just install-tools ${{ matrix.python-env }} | |
| - name: Build package | |
| run: just build ${{ matrix.python-env }} | |
| - name: List built artifacts | |
| run: | | |
| echo "Built artifacts for ${{ matrix.python-env }}:" | |
| ls -la dist/ | |
| - name: Upload build artifacts | |
| uses: actions/upload-artifact@v4 | |
| with: | |
| name: package-${{ matrix.python-env }} | |
| path: dist/ | |
| retention-days: 14 |