name: Render PEPs on: [push, pull_request, workflow_dispatch] permissions: contents: read concurrency: group: ${{ github.workflow }}-${{ github.head_ref || github.run_id }} cancel-in-progress: true env: FORCE_COLOR: 1 jobs: render-peps: name: Render PEPs runs-on: ubuntu-latest permissions: contents: write strategy: fail-fast: false matrix: python-version: - "3.x" - "3.13-dev" steps: - name: Checkout uses: actions/checkout@v4 with: fetch-depth: 0 # fetch all history so that last modified date-times are accurate - name: Set up Python ${{ matrix.python-version }} uses: actions/setup-python@v5 with: python-version: ${{ matrix.python-version }} cache: pip - name: Update pip run: | python -m pip install --upgrade pip - name: Render PEPs run: make dirhtml JOBS=$(nproc) # remove the .doctrees folder when building for deployment as it takes two thirds of disk space - name: Clean up files run: rm -r build/.doctrees/ - name: Deploy to GitHub pages # This allows CI to build branches for testing if: (github.ref == 'refs/heads/main') && (matrix.python-version == '3.x') uses: JamesIves/github-pages-deploy-action@v4 with: folder: build # Synchronise with Makefile -> BUILDDIR single-commit: true # Delete existing files - name: Purge CDN cache if: github.ref == 'refs/heads/main' run: | curl -H "Accept: application/json" -H "Fastly-Key: $FASTLY_TOKEN" -X POST "https://api.fastly.com/service/$FASTLY_SERVICE_ID/purge_all" env: FASTLY_TOKEN: ${{ secrets.FASTLY_TOKEN }} FASTLY_SERVICE_ID: ${{ secrets.FASTLY_SERVICE_ID }}