name: Deploy on: push: branches: - main jobs: deploy: runs-on: ubuntu-latest permissions: contents: write # To push a branch pull-requests: write # To create a PR from that branch steps: - uses: actions/checkout@v3 with: fetch-depth: 0 - name: Update rustup run: rustup self update - name: Install Rust run: | rustup set profile minimal rustup toolchain install nightly -c rust-docs rustup override set nightly - 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: Install plugins run: | cargo install mdbook-bib cargo install mdbook-mermaid - 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. 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