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