1+ name : Build & Deploy Documentation
2+
3+ on :
4+ # Runs on pushes targeting the default branch
5+ push :
6+ branches : ["main"]
7+
8+ # Allows you to run this workflow manually from the Actions tab
9+ workflow_dispatch :
10+
11+ # Sets permissions of the GITHUB_TOKEN to allow deployment to GitHub Pages
12+ permissions :
13+ contents : write
14+
15+ # Allow only one concurrent deployment, skipping runs queued between the run in-progress and latest queued.
16+ # However, do NOT cancel in-progress runs as we want to allow these production deployments to complete.
17+ concurrency :
18+ group : " pages"
19+ cancel-in-progress : false
20+
21+
22+ jobs :
23+ build :
24+ runs-on : ubuntu-latest
25+
26+ steps :
27+ - name : Checkout repository
28+ uses : actions/checkout@v4
29+ with :
30+ fetch-depth : 0
31+
32+ - name : Instal pgnquant for optimize plugin
33+ run : sudo apt-get install pngquant
34+
35+ - name : Set up Python runtime
36+ uses : actions/setup-python@v5
37+ with :
38+ python-version : 3.x
39+
40+ - name : Install Python dependencies
41+ run : pip install mkdocs-monorepo-plugin mkdocs-redirects mkdocs-git-authors-plugin mkdocs-git-revision-date-localized-plugin mkdocs-git-committers-plugin-2 Pillow 'mkdocs-material[imaging]'
42+
43+ - name : Set up build cache
44+ run : echo "cache_id=$(date --utc '+%V')" >> $GITHUB_ENV
45+ - uses : actions/cache@v4
46+ with :
47+ key : mkdocs-material-${{ env.cache_id }}
48+ path : .cache
49+ restore-keys : |
50+ mkdocs-material-
51+
52+ - name : Install Insiders build
53+ env :
54+ MKDOCS_TOKEN : ${{ secrets.MKDOCS_SECRET }}
55+ run : pip install git+https://${MKDOCS_TOKEN}@github.com/squidfunk/mkdocs-material-insiders.git
56+ - run : mkdocs build --clean
57+
58+
59+ # Single deploy job since we're just deploying
60+ deploy :
61+ # Add a dependency to the build job
62+ needs : build
63+
64+ # Grant GITHUB_TOKEN the permissions required to make a Pages deployment
65+ permissions :
66+ pages : write # to deploy to Pages
67+ id-token : write # to verify the deployment originates from an appropriate source
68+
69+ environment :
70+ name : github-pages
71+ url : ${{ steps.deployment.outputs.page_url }}
72+
73+ runs-on : ubuntu-latest
74+ if : github.event.repository.fork == false
75+
76+ steps :
77+ - name : Checkout
78+ uses : actions/checkout@v4
79+ with :
80+ ref : ' gh-pages'
81+
82+ - name : Setup Pages
83+ uses : actions/configure-pages@v5
84+
85+ - name : Upload artifact
86+ uses : actions/upload-pages-artifact@v3
87+ with :
88+ # Upload entire repository
89+ path : ' .'
90+
91+ - name : Deploy to GitHub Pages
92+ id : deployment
93+ uses : actions/deploy-pages@v4
0 commit comments