Conform to the PRISM guidelines (step 1/2) #44
Workflow file for this run
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: ci | |
| on: | |
| push: | |
| tags: | |
| - v* | |
| pull_request: | |
| branches: [main] | |
| permissions: | |
| contents: write | |
| id-token: write | |
| pages: write | |
| jobs: | |
| pre-commit: | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v3 | |
| - uses: actions/setup-python@v3 | |
| - uses: pre-commit/action@v3.0.1 | |
| tests: | |
| needs: [pre-commit] | |
| name: "pytest with uv" | |
| runs-on: ubuntu-latest | |
| strategy: | |
| matrix: | |
| python-version: ["3.12", "3.13"] | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - name: Set up the environment | |
| uses: ./.github/actions/setup-python-env | |
| with: | |
| python-version: ${{ matrix.python-version }} | |
| - name: Tests | |
| run: uv run pytest | |
| test_pip_install: | |
| needs: [pre-commit] | |
| name: "pytest with pip install" | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v5 | |
| - name: Set up Python | |
| uses: actions/setup-python@v6 | |
| with: | |
| python-version: "3.12" | |
| - name: pip installation | |
| run: pip install -e . && pip install pytest-cov poethepoet | |
| - name: Run short tests | |
| run: poe test_no_multimodal | |
| deploy-docs: | |
| needs: [tests, test_pip_install] | |
| if: contains(github.ref, 'tags') | |
| name: "Deploy documentation" | |
| runs-on: ubuntu-latest | |
| environment: github-pages | |
| steps: | |
| - uses: actions/checkout@v5 | |
| - name: Set up the environment | |
| uses: ./.github/actions/setup-python-env | |
| - name: Install extra dependencies | |
| run: uv sync --dev | |
| - name: Build documentation | |
| run: uv run zensical build --clean | |
| - uses: actions/upload-pages-artifact@v5 | |
| id: pages_artifact | |
| with: | |
| path: site | |
| name: github-pages-${{ github.run_id }} | |
| - uses: actions/deploy-pages@v5 | |
| id: deployment | |
| with: | |
| artifact_name: github-pages-${{ github.run_id }} | |
| pypi-release: | |
| needs: [tests, test_pip_install] | |
| if: contains(github.ref, 'tags') | |
| name: "PyPI release" | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - name: Set up the environment | |
| uses: ./.github/actions/setup-python-env | |
| - name: Build | |
| run: uv build | |
| - name: Publish | |
| run: uv publish -t ${{ secrets.PYPI_TOKEN }} |