name: Build and deploy documentation book
on:
push:
pull_request:
permissions:
contents: read
jobs:
book:
name: Build book
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- uses: dtolnay/rust-toolchain@stable
with:
toolchain: stable
- name: Cache dependencies
uses: actions/cache@v3
env:
cache-name: cache-mdbook
with:
path: |
~/.cargo/.crates.toml
~/.cargo/.crates2.json
~/.cargo/bin
~/.cargo/registry/index
~/.cargo/registry/cache
key: ${{ runner.os }}-build-${{ env.cache-name }}-0.3 }}
- name: Install mdbook
run: |
(test -x $HOME/.cargo/bin/cargo-install-update || cargo install cargo-update)
(test -x $HOME/.cargo/bin/mdbook || cargo install --vers "^0.4" mdbook)
cargo install-update -a
- name: Build book
run: |
mdbook --version
(cd docs && mv _theme theme && mdbook build)
rustc ./docs/_installer/build-installer.rs
./build-installer
- uses: actions/upload-artifact@v4
if: github.event_name == 'push' && github.ref == 'refs/heads/master'
with:
name: book
path: docs
retention-days: 1
deploy:
name: Deploy book
needs: book
if: github.event_name == 'push' && github.ref == 'refs/heads/master'
permissions:
contents: write
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- uses: actions/download-artifact@v4
with:
name: book
path: docs
- name: Deploy book
uses: JamesIves/github-pages-deploy-action@v4.4.1
with:
branch: gh-pages
folder: docs
token: ${{ secrets.GITHUB_TOKEN }}
single-commit: true