# Source: https://github.com/rust-lang/mdBook/wiki/Automated-Deployment%3A-GitHub-Actions
name: Deploy Book
on:
  push:
    branches:
      - master

jobs:
    deploy-book:
        runs-on: ubuntu-24.04
        permissions:
            contents: write  # To push a branch
            pull-requests: write  # To create a PR from that branch
        steps:
        -   uses: actions/checkout@v6
            with:
                fetch-depth: 0
        -   name: Install latest mdbook
            run: |
                tag=$(curl 'https://api.github.com/repos/rust-lang/mdbook/releases/latest' | jq -r '.tag_name')
                url="https://github.com/rust-lang/mdbook/releases/download/${tag}/mdbook-${tag}-x86_64-unknown-linux-gnu.tar.gz"
                mkdir mdbook
                curl -sSL $url | tar -xz --directory=./mdbook
                echo `pwd`/mdbook >> $GITHUB_PATH
        -   name: Deploy GitHub Pages
            run: |
                # This assumes your book is in the root of your repository.
                # Just add a `cd` here if you need to change to another directory.
                cd book
                mdbook build
                git worktree add gh-pages
                git config user.name "Deploy from CI"
                git config user.email ""
                cd gh-pages
                # Delete the ref to avoid keeping history.
                git update-ref -d refs/heads/gh-pages
                rm -rf *
                mv ../book/* .
                git add .
                git commit -m "Deploy $GITHUB_SHA to gh-pages"
                git push --force --set-upstream origin gh-pages
