on:
  push:
    branches:
      - main

name: Docs

jobs:
  docs:
    name: Build and deploy documentation
    concurrency: ci-${{ github.ref }}
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4
      - uses: dtolnay/rust-toolchain@stable
      - uses: Swatinem/rust-cache@23bce251a8cd2ffc3c1075eaa2367cf899916d84 # v2
      - name: Build rustdoc
        run: cargo doc --all-features --workspace
      - name: Organize
        run: |
          rm -rf target/gh-pages
          mkdir target/gh-pages
          mv target/doc target/gh-pages/rustdoc
      - name: Deploy
        uses: JamesIves/github-pages-deploy-action@releases/v4
        with:
          branch: gh-pages
          folder: target/gh-pages
          single-commit: true
