Ch. 17: rewrite 17.01 with a better example #2768
Workflow file for this run
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: CI | |
on: [push, pull_request] | |
jobs: | |
test: | |
name: Run tests | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@master | |
- name: Update rustup | |
run: rustup self update | |
- name: Install Rust | |
run: | | |
rustup set profile minimal | |
rustup toolchain install 1.81 -c rust-docs | |
rustup default 1.81 | |
- name: Install mdbook | |
run: | | |
mkdir bin | |
curl -sSL https://github.com/rust-lang/mdBook/releases/download/v0.4.21/mdbook-v0.4.21-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 | |
# mdBook does not currently have particularly good support for “external” | |
# crates. To make the test suite work correctly with `trpl`, we must first | |
# build `trpl` itself (`mdbook` will not do it), and then explicitly pass | |
# its `deps` path as a library search path for `mdbook test`. That will make | |
# sure all the crates can be resolved when running the tests. | |
- name: Build `trpl` crate | |
run: | | |
cd packages/trpl | |
cargo build | |
- name: Run tests | |
run: | |
mdbook test --library-path packages/trpl/target/debug/deps | |
package_tests: | |
name: Run package tests | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@master | |
- name: Update rustup | |
run: rustup self update | |
- name: Install Rust | |
run: | | |
rustup set profile minimal | |
rustup toolchain install 1.81 -c rust-docs | |
rustup default 1.81 | |
- name: Run `tools` package tests | |
run: | | |
cargo test | |
- name: Run `mdbook-trpl-note` package tests | |
working-directory: packages/mdbook-trpl-note | |
run: | | |
cargo test | |
- name: Run `mdbook-trpl-listing` package tests | |
working-directory: packages/mdbook-trpl-listing | |
run: | | |
cargo test | |
lint: | |
name: Run lints | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@master | |
- name: Update rustup | |
run: rustup self update | |
- name: Install Rust | |
run: | | |
rustup set profile minimal | |
rustup toolchain install nightly -c rust-docs | |
rustup override set nightly | |
- name: Install mdbook | |
run: | | |
mkdir bin | |
curl -sSL https://github.com/rust-lang/mdBook/releases/download/v0.4.21/mdbook-v0.4.21-x86_64-unknown-linux-gnu.tar.gz | tar -xz --directory=bin | |
echo "$(pwd)/bin" >> "${GITHUB_PATH}" | |
- name: Install mdbook-trpl-note | |
run: cargo install --path packages/mdbook-trpl-note | |
- name: Install mdbook-trpl-listing | |
run: cargo install --path packages/mdbook-trpl-listing | |
- name: Install aspell | |
run: sudo apt-get install aspell | |
- name: Install shellcheck | |
run: sudo apt-get install shellcheck | |
- name: Report versions | |
run: | | |
rustup --version | |
rustc -Vv | |
mdbook --version | |
aspell --version | |
shellcheck --version | |
- name: Shellcheck | |
run: find . -name '*.sh' -print0 | xargs -0 shellcheck | |
- name: Spellcheck | |
run: bash ci/spellcheck.sh list | |
- name: Lint for local file paths | |
run: | | |
mdbook build | |
cargo run --bin lfp src | |
- name: Validate references | |
run: bash ci/validate.sh | |
- name: Check for broken links | |
run: | | |
curl -sSLo linkcheck.sh \ | |
https://raw.githubusercontent.com/rust-lang/rust/master/src/tools/linkchecker/linkcheck.sh | |
# Cannot use --all here because of the generated redirect pages aren't available. | |
sh linkcheck.sh book |