name: Build and Deploy Docs
on:
push:
branches: [ main, master ]
workflow_dispatch:
permissions:
contents: read
pages: write
id-token: write
jobs:
build-and-deploy:
runs-on: ubuntu-latest
environment:
name: github-pages
url: ${{ steps.deployment.outputs.page_url }}
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Install Rust
uses: dtolnay/rust-toolchain@stable
- name: Generate Documentation
run: cargo doc --no-deps --all-features
- name: Create index.html
run: |
printf '%s\n' \
'<!DOCTYPE html>' \
'<html lang="en">' \
'<head>' \
' <meta charset="utf-8">' \
' <title>toon-rust Documentation</title>' \
' <meta http-equiv="refresh" content="0; url=toon_rust/index.html">' \
' <script>window.location.replace("toon_rust/index.html");</script>' \
'</head>' \
'<body>' \
' <p>Redirecting to <a href="toon_rust/index.html">documentation</a>...</p>' \
'</body>' \
'</html>' > target/doc/index.html
- name: Setup Pages
uses: actions/configure-pages@v4
- name: Upload artifact
uses: actions/upload-pages-artifact@v3
with:
path: target/doc
- name: Deploy to GitHub Pages
id: deployment
uses: actions/deploy-pages@v4