| # Part of the Crubit project, under the Apache License v2.0 with LLVM | 
 | # Exceptions. See /LICENSE for license information. | 
 | # SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception | 
 | name: Deploy mdBook site to Pages | 
 |  | 
 | on: | 
 |   # Runs on pushes targeting the default branch | 
 |   push: | 
 |     branches: ["main"] | 
 |  | 
 |   # Allows you to run this workflow manually from the Actions tab | 
 |   workflow_dispatch: | 
 |  | 
 | # Sets permissions of the GITHUB_TOKEN to allow deployment to GitHub Pages | 
 | permissions: | 
 |   contents: read | 
 |   pages: write | 
 |   id-token: write | 
 |  | 
 | # Allow only one concurrent deployment, skipping runs queued between the run in-progress and latest queued. | 
 | # However, do NOT cancel in-progress runs as we want to allow these production deployments to complete. | 
 | concurrency: | 
 |   group: "pages" | 
 |   cancel-in-progress: false | 
 |  | 
 | jobs: | 
 |   # Build job | 
 |   build: | 
 |     runs-on: ubuntu-latest | 
 |     env: | 
 |       MDBOOK_VERSION: 0.4.36 | 
 |     steps: | 
 |       - uses: actions/checkout@v4 | 
 |       - name: Install mdBook | 
 |         run: | | 
 |           curl --proto '=https' --tlsv1.2 https://sh.rustup.rs -sSf -y | sh | 
 |           rustup update | 
 |           cargo install --version ${MDBOOK_VERSION} mdbook | 
 |       - name: Setup Pages | 
 |         id: pages | 
 |         uses: actions/configure-pages@v5 | 
 |       - name: Build with mdBook | 
 |         run: mdbook build | 
 |       - name: Upload artifact | 
 |         uses: actions/upload-pages-artifact@v3 | 
 |         with: | 
 |           path: ./book | 
 |  | 
 |   # Deployment job | 
 |   deploy: | 
 |     environment: | 
 |       name: github-pages | 
 |       url: ${{ steps.deployment.outputs.page_url }} | 
 |     runs-on: ubuntu-latest | 
 |     needs: build | 
 |     steps: | 
 |       - name: Deploy to GitHub Pages | 
 |         id: deployment | 
 |         uses: actions/deploy-pages@v4 |