-
Notifications
You must be signed in to change notification settings - Fork 0
145 lines (121 loc) · 3.58 KB
/
build-and-deploy-manual.yml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
name: Build & deploy Manual to GitHub Pages
on:
workflow_dispatch:
push:
branches:
- main
env:
font: SpaceMono
version: v3.2.1
jobs:
## Fetch/process/cache fonts ##
get_fonts:
name: Fetch & Process NerdFonts
runs-on: ubuntu-latest
steps:
- uses: actions/cache@v4
id: cache
with:
path: |
docs/assets/fonts/${{env.font}}NerdFont
docs/assets/fonts/default-font.css
key: "${{env.font}}-${{env.version}}"
- name: Checkout processing script
if: steps.cache.outputs.cache-hit != 'true'
uses: actions/checkout@v4
with:
sparse-checkout: |
nerdfontweb.py
docs/assets/fonts/
- name: Setup Python
if: steps.cache.outputs.cache-hit != 'true'
uses: actions/[email protected]
with:
python-version: '3.12'
cache: 'pip'
- name: Download, unpack, and process NerdFonts
if: steps.cache.outputs.cache-hit != 'true'
id: process_fonts
run: |
python nerdfontweb.py --version ${{env.version}} --gen-default --mkdocs ${{env.font}}
## Compile SASS ##
compile_sass:
name: Compile SASS
runs-on: ubuntu-latest
steps:
- name: Checkout SASS files
uses: actions/checkout@v4
with:
sparse-checkout: |
docs/assets/stylesheets/
- name: Install sassc
run: sudo apt-get install -y sassc
- name: Compile SASS
run: |
for file in docs/assets/stylesheets/*.sass; do
sassc --sass $file ${file%.sass}.compiled.css
done
- name: Upload compiled CSS
uses: actions/upload-artifact@v4
with:
name: compiled-css
path: docs/assets/stylesheets/*.compiled.css
retention-days: 1
## Build job ##
build:
name: Build manual pages
needs:
- get_fonts
- compile_sass
runs-on: ubuntu-latest
steps:
- name: Configure GitHub Pages
uses: actions/configure-pages@v5
- name: Checkout main
uses: actions/checkout@v4
with:
sparse-checkout: |
.github
docs
- uses: actions/cache/restore@v4
with:
path: |
docs/assets/fonts/${{env.font}}NerdFont
docs/assets/fonts/default-font.css
key: "${{env.font}}-${{env.version}}"
fail-on-cache-miss: true
- uses: actions/download-artifact@v4
with:
name: compiled-css
path: docs/assets/stylesheets/
- name: Setup Python
uses: actions/[email protected]
with:
python-version: '3.12'
cache: 'pip'
- name: Install python modules
run: pip install -r docs/requirements.txt
- name: Generate site files
run: mkdocs build
- name: Upload GitHub Pages artifact
uses: actions/[email protected]
with:
path: "site/"
## Deploy job ##
deploy:
name: Deploy manual pages
needs: build
# Grant GITHUB_TOKEN the permissions required to make a Pages deployment
permissions:
pages: write # to deploy to Pages
id-token: write # to verify the deployment originates from an appropriate source
# Deploy to the github-pages environment
environment:
name: github-pages
url: ${{ steps.deployment.outputs.page_url }}
# Specify runner + deployment step
runs-on: ubuntu-latest
steps:
- name: Deploy to GitHub Pages
id: deployment
uses: actions/[email protected]