-
-
Notifications
You must be signed in to change notification settings - Fork 83
58 lines (51 loc) · 1.6 KB
/
docs-retro.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
name: Retroactive Documentation Deployment
on:
workflow_dispatch: # Allows manual triggering of the workflow
jobs:
deploy:
runs-on: ubuntu-latest
steps:
- name: Checkout Code
uses: actions/checkout@v2
with:
fetch-depth: 0 # Get the entire history so all tags are available
- name: Setup Rust
uses: actions-rs/toolchain@v1
with:
profile: minimal
toolchain: stable
- name: Cache Dependencies
uses: actions/cache@v2
with:
path: ~/.cargo
key: cargo-cache-${{ hashFiles('**/Cargo.lock') }}
- name: Install dependencies
run: |
cargo install mdbook mdbook-mermaid mdbook-toc
- name: Generate and Deploy Documentation
run: |
mkdir -p deploy
tags=$(git tag -l 'v*') # Assumes tag format is v<version>
for tag in $tags; do
git checkout $tag
version=${tag#v}
deploy_dir="deploy/$version"
if [[ ! -d $deploy_dir ]]; then
if [[ -d "docs" ]]; then
cd docs
mdbook build
mv book ../$deploy_dir
cd ..
else
echo "Docs folder not found for tag $tag."
fi
else
echo "Documentation already exists for tag $tag."
fi
done
git checkout main # Return to main branch before deployment
- name: Deploy
uses: JamesIves/github-pages-deploy-action@v4
with:
folder: deploy
single-commit: true