Skip to content

Workflow file for this run

name: Build and Deploy Jekyll and Doxygen Documentation
on:
push:
branches:
- gh-pages
workflow_dispatch:
permissions:
contents: write
pages: write
id-token: write
concurrency:
group: "pages"
cancel-in-progress: false
jobs:
# Build Jekyll Site
build-jekyll:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
with:
ref: gh-pages
fetch-depth: 0
- name: Setup Pages
uses: actions/configure-pages@v5
- name: Build with Jekyll
uses: actions/jekyll-build-pages@v1
with:
source: ./
destination: ./_site
- name: Upload Jekyll Artifact
uses: actions/upload-pages-artifact@v3
with:
path: ./_site
name: jekyll-site-${{ github.run_number }}-${{ github.run_id }}
# Generate Doxygen Documentation
build-doxygen:
runs-on: ubuntu-latest
needs: build-jekyll
steps:
- name: Checkout gh-pages
uses: actions/checkout@v4
with:
ref: gh-pages
fetch-depth: 0
- name: Install Doxygen and Dependencies
run: sudo apt-get update && sudo apt-get install -y doxygen graphviz texlive
- name: Generate Doxygen Documentation
run: |
branches=("master:core" "duo" "handle" "orbit" "gloves" "desktop" "spark" "chromadeck")
rm -rf docs || true
mkdir -p docs # Ensure the docs directory is clean and prepared
for item in "${branches[@]}"; do
IFS=':' read -r branch dest <<< "$item"
dest="${dest:-$branch}"
# Create a worktree for the branch in a separate directory
echo "Setting up worktree for branch: $branch"
git worktree add worktree/$branch $branch
# Change directory to the worktree
cd worktree/$branch
# Ensure the output directory exists
mkdir -p ../../docs/$dest
# Change OUTPUT_DIRECTORY in Doxyfile for each branch
echo "Adjusting Doxyfile for branch: $branch"
sed -i "s|OUTPUT_DIRECTORY *=.*|OUTPUT_DIRECTORY = ../../docs/$dest|" Doxyfile
echo "Running Doxygen for branch: $branch"
doxygen Doxyfile || { echo "Doxygen failed for branch: $branch"; exit 1; }
echo "Generated docs for $branch in docs/$dest"
# Return to the root directory
cd ../..
# Remove the worktree after processing
git worktree remove worktree/$branch -f
done
- name: Upload Doxygen Docs
uses: actions/upload-pages-artifact@v3
with:
path: ./docs
name: doxygen-docs-${{ github.run_number }}-${{ github.run_id }}
# Deploy to GitHub Pages
deploy:
runs-on: ubuntu-latest
needs: [build-jekyll, build-doxygen]
steps:
- name: Download Artifacts
uses: actions/download-pages-artifact@v2
- name: Deploy to GitHub Pages
id: deployment
uses: actions/deploy-pages@v4