on:
  pull_request:
  workflow_dispatch:

name: Book

permissions:
  contents: read
  pages: write
  id-token: write

jobs:
  publish:
    name: Publish
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v3
      - uses: actions-rs/toolchain@v1
        with:
          toolchain: nightly
          profile: minimal
          override: true
          components: rust-src
      - name: Install mdbook I
        uses: taiki-e/install-action@v2
        with:
          tool: cargo-binstall,mdbook
      - name: Install mdbook II
        run: |
          cargo binstall -y mdbook-cmdrun
          cargo binstall -y trunk@0.17.5
          rustup target add wasm32-unknown-unknown
      - name: Cache
        uses: Swatinem/rust-cache@v2
      - name: Setup Pages
        id: pages
        uses: actions/configure-pages@v3
      - name: Build mdbook
        run: |
          cd docs/book
          mdbook build
          python3 post_build.py
      - name: Upload artifact
        uses: actions/upload-pages-artifact@v1
        with:
          path: ./docs/book/book
      - name: Deploy book to github pages
        id: deployment
        if: github.event_name != 'pull_request'
        uses: actions/deploy-pages@v2