| name: CI |
| |
| on: |
| push: # Run CI for all branches except GitHub merge queue tmp branches |
| branches-ignore: |
| - "gh-readonly-queue/**" |
| pull_request: # Run CI for PRs on any branch |
| merge_group: # Run CI for the GitHub merge queue |
| |
| jobs: |
| build: |
| runs-on: ubuntu-24.04 |
| steps: |
| - uses: actions/checkout@v4 |
| - uses: dtolnay/rust-toolchain@stable |
| |
| - name: Install Python dependencies |
| run: | |
| pip3 install --user python-dateutil linkchecker |
| - name: Put pip binary directory into path |
| run: echo "~/.local/bin" >> $GITHUB_PATH |
| |
| - name: Cache Cargo installed binaries |
| uses: actions/cache@v4 |
| id: cache-cargo |
| with: |
| path: ~/cargo-bin |
| key: cache-cargo |
| - name: Install mdbook |
| if: steps.cache-cargo.outputs.cache-hit != 'true' |
| uses: actions-rs/install@v0.1 |
| with: |
| crate: mdbook |
| version: latest |
| - name: Copy mdbook to cache directory |
| if: steps.cache-cargo.outputs.cache-hit != 'true' |
| run: | |
| mkdir ~/cargo-bin |
| cp ~/.cargo/bin/mdbook ~/cargo-bin |
| - name: Put new cargo binary directory into path |
| run: echo "~/cargo-bin" >> $GITHUB_PATH |
| |
| - name: Build book |
| run: mdbook build |
| - name: Test book |
| run: mdbook test |
| - name: Check links |
| run: linkchecker book |
| |
| - name: Deploy book |
| if: ${{ github.event_name == 'push' && github.ref == 'refs/heads/master' }} |
| uses: peaceiris/actions-gh-pages@v3 |
| with: |
| github_token: ${{ secrets.GITHUB_TOKEN }} |
| publish_dir: book |
| force_orphan: true |