Skip to content

do not upload non-distribution files to PyPI; delete possible already… #84

do not upload non-distribution files to PyPI; delete possible already…

do not upload non-distribution files to PyPI; delete possible already… #84

Workflow file for this run

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