diff --git a/.github/workflows/docs.yml b/.github/workflows/docs.yml index 29d415d..934c623 100644 --- a/.github/workflows/docs.yml +++ b/.github/workflows/docs.yml @@ -7,17 +7,64 @@ on: - 'docs/**' - 'mkdocs.yml' - 'README.md' + - '.github/workflows/docs.yml' + pull_request: + paths: + - 'docs/**' + - 'mkdocs.yml' + - 'README.md' + - '.github/workflows/docs.yml' workflow_dispatch: +permissions: + contents: read + pages: write + id-token: write + +concurrency: + group: pages + cancel-in-progress: false + jobs: - deploy: + build: + name: Build MkDocs site runs-on: ubuntu-latest - permissions: - contents: write steps: - - uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6.0.3 - - uses: actions/setup-python@a309ff8b426b58ec0e2a45f0f869d46889d02405 # v6.2.0 + - name: Checkout + uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6.0.3 + + - name: Setup Python + uses: actions/setup-python@a309ff8b426b58ec0e2a45f0f869d46889d02405 # v6.2.0 with: python-version: '3.x' - - run: pip install mkdocs-material - - run: mkdocs gh-deploy --force + + - name: Install MkDocs Material + run: | + set -euo pipefail + python3 -m pip install --upgrade pip + python3 -m pip install mkdocs mkdocs-material + + - name: Build site (strict) + run: mkdocs build --strict --site-dir site + + - name: Upload Pages artifact + if: github.ref == 'refs/heads/main' + uses: actions/upload-pages-artifact@fc324d3547104276b827a68afc52ff2a11cc49c9 # v5.0.0 + with: + path: site + + deploy: + name: Deploy to GitHub Pages + if: github.ref == 'refs/heads/main' + needs: build + runs-on: ubuntu-latest + environment: + name: github-pages + url: ${{ steps.deployment.outputs.page_url }} + steps: + - name: Setup Pages + uses: actions/configure-pages@45bfe0192ca1faeb007ade9deae92b16b8254a0d # v6.0.0 + + - name: Deploy to GitHub Pages + id: deployment + uses: actions/deploy-pages@cd2ce8fcbc39b97be8ca5fce6e763baed58fa128 # v5.0.0