Skip to content

Retroactive Documentation Deployment #1

Retroactive Documentation Deployment

Retroactive Documentation Deployment #1

Workflow file for this run

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