More quizzes #368
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: | |
branches: | |
- '**' | |
# TODO: make a version that runs on pull_request | |
env: | |
RUST_LIB_BACKTRACE: 1 | |
RAYON_NUM_THREADS: 1 | |
MDBOOK_QUIZ_VERSION: 0.3.7 | |
AQUASCOPE_VERSION: 0.3.3 | |
AQUASCOPE_TOOLCHAIN: nightly-2023-08-25 | |
jobs: | |
test: | |
name: Run tests | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@master | |
- uses: actions/setup-node@v3 | |
with: | |
node-version: 20 | |
- uses: pnpm/action-setup@v2 | |
with: | |
version: 6.7.0 | |
- name: Update rustup | |
run: rustup self update | |
- name: Install Rust | |
run: | | |
rustup set profile minimal | |
rustup toolchain install 1.79 -c rust-docs | |
rustup default 1.79 | |
- name: Install Depot | |
run: curl https://raw.githubusercontent.com/cognitive-engineering-lab/depot/main/scripts/install.sh | sh | |
- name: Install Aquascope toolchain | |
run: | | |
rustup toolchain install ${AQUASCOPE_TOOLCHAIN} -c rust-src rustc-dev llvm-tools-preview miri | |
cargo +${AQUASCOPE_TOOLCHAIN} miri setup | |
echo "LD_LIBRARY_PATH=$($(rustup which --toolchain ${AQUASCOPE_TOOLCHAIN} rustc) --print target-libdir)" >> ${GITHUB_ENV} | |
- name: Install binaries | |
run: | | |
mkdir bin | |
curl -sSL https://github.com/rust-lang/mdBook/releases/download/v0.4.25/mdbook-v0.4.25-x86_64-unknown-linux-gnu.tar.gz | tar -xz --directory=bin | |
curl -sSL https://github.com/cognitive-engineering-lab/mdbook-quiz/releases/download/v${MDBOOK_QUIZ_VERSION}/mdbook-quiz_x86_64-unknown-linux-gnu_full.tar.gz | tar -xz --directory=bin | |
curl -sSL https://github.com/cognitive-engineering-lab/aquascope/releases/download/v${AQUASCOPE_VERSION}/aquascope-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-quiz --version | |
mdbook-aquascope --version | |
- name: Install js-extensions | |
run: | | |
cd js-extensions | |
pnpm init-repo | |
- 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 | |
- 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 ci tools -name '*.sh' | xargs 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 | |
# 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 mdbook tests | |
run: | |
mdbook test --library-path packages/trpl/target/debug/deps | |
- name: Build mdbook | |
run: mdbook build | |
- name: Deploy to Github Pages | |
if: ${{ github.ref == 'refs/heads/main' }} | |
uses: peaceiris/actions-gh-pages@v3 | |
with: | |
github_token: ${{ secrets.GITHUB_TOKEN }} | |
publish_dir: ./book | |
cname: rust-book.cs.brown.edu |