chore: CI and docs update #4
This file contains 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
--- | |
on: | |
workflow_dispatch: | |
push: | |
branches: [main] | |
pull_request: | |
name: Mkdocs CI | |
concurrency: | |
group: ${{ github.workflow }}-${{ github.ref_name }}-${{ github.event.pull_request.number || github.sha }} | |
cancel-in-progress: true | |
env: | |
PYTHON_VERSION: "3.11" | |
jobs: | |
docs: | |
name: Test, build and deploy docs | |
env: | |
PYTHONDEVMODE: 1 | |
runs-on: "ubuntu-latest" | |
strategy: | |
fail-fast: false | |
matrix: | |
python-version: ["3.11"] | |
permissions: | |
contents: write | |
steps: | |
- uses: actions/checkout@v4 | |
with: | |
fetch-depth: 0 | |
- name: Setup PDM | |
# XXX Use the upstream version when repository is not private | |
uses: ManoManoTech/setup-pdm@main | |
id: setup-pdm | |
with: | |
python-version: ${{ matrix.python-version }} | |
cache: true | |
allow-python-prereleases: true | |
- name: Install dependencies | |
run: pdm install -v && pdm info | |
- name: "Check for mkdocs build --strict" | |
run: | | |
pdm run docs-build --strict | |
# If pull request or not main branch and not a tag | |
if: github.event_name == 'pull_request' || (github.event_name == 'push' && github.ref != 'refs/heads/main' && !startsWith(github.ref, 'refs/tags/')) || github.event_name == 'workflow_dispatch' | |
- name: Patch mike 2.0.0 | |
run: | | |
# In .venv/lib/python3.11/site-packages/mike/mkdocs_utils.py, replace `config = mkdocs.utils.yaml_load(f)` by `config = mkdocs.config.load_config(f).data` | |
# Issue: https://github.com/jimporter/mike/issues/199 | |
sed -i 's/config = mkdocs.utils.yaml_load(f)/config = mkdocs.config.load_config(f).data/' .venv/lib/python3.11/site-packages/mike/mkdocs_utils.py | |
- name: Deploy docs (dev) | |
if: github.event_name == 'push' && github.ref == 'refs/heads/main' | |
run: | | |
export SHORT_SHA=$(echo "${GITHUB_SHA}" | cut -c1-7) | |
pdm run mike deploy dev --update-aliases --title "dev (${SHORT_SHA})" --push | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
- name: Deploy docs (tag) | |
if: startsWith(github.ref, 'refs/tags/') && github.event_name == 'push' | |
run: | | |
pdm run mike deploy ${{ github.ref }} latest --push --update-aliases | |
pdm run mike set-default latest --push | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} |