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.82 -c rust-docs rustup default 1.82 - 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.82 -c rust-docs rustup default 1.82 - name: Run `tools` package tests run: | cargo test - name: Run `mdbook-trpl` package tests working-directory: packages/mdbook-trpl 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 binaries run: cargo install --path packages/mdbook-trpl - 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