|
|
|
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
|