| name: CI |
| on: |
| pull_request: |
| merge_group: |
| |
| env: |
| MDBOOK_VERSION: 0.4.40 |
| |
| jobs: |
| test: |
| name: Test |
| runs-on: ubuntu-latest |
| steps: |
| - uses: actions/checkout@v4 |
| - name: Update rustup |
| run: rustup self update |
| - name: Install Rust |
| run: | |
| rustup set profile minimal |
| rustup toolchain install nightly -c rust-docs |
| rustup default nightly |
| - name: Install mdbook |
| run: | |
| mkdir bin |
| curl -sSL https://github.com/rust-lang/mdBook/releases/download/v${MDBOOK_VERSION}/mdbook-v${MDBOOK_VERSION}-x86_64-unknown-linux-gnu.tar.gz | tar -xz --directory=bin |
| echo "$(pwd)/bin" >> $GITHUB_PATH |
| - name: Report versions |
| run: | |
| rustup --version |
| rustc -Vv |
| mdbook --version |
| - name: Run tests |
| run: mdbook test |
| - name: Check for broken links |
| run: | |
| curl -sSLo linkcheck.sh \ |
| https://raw.githubusercontent.com/rust-lang/rust/master/src/tools/linkchecker/linkcheck.sh |
| sh linkcheck.sh --all nomicon |
| |
| # The success job is here to consolidate the total success/failure state of |
| # all other jobs. This job is then included in the GitHub branch protection |
| # rule which prevents merges unless all other jobs are passing. This makes |
| # it easier to manage the list of jobs via this yml file and to prevent |
| # accidentally adding new jobs without also updating the branch protections. |
| success: |
| name: Success gate |
| if: always() |
| needs: |
| - test |
| runs-on: ubuntu-latest |
| steps: |
| - run: jq --exit-status 'all(.result == "success")' <<< '${{ toJson(needs) }}' |
| - name: Done |
| run: exit 0 |