From c44f8b2b68dfece1183c2ec7abb26b5fde746304 Mon Sep 17 00:00:00 2001 From: Alice Cecile Date: Thu, 3 Feb 2022 04:25:45 +0000 Subject: [PATCH] Run tests (including doc tests) in `cargo run -p ci` command (#3849) # Objective - Using the `cargo run -p ci` command locally is unreliable, as it does not run tests. - This is particularly unreliable for doc tests, as they are not run as part of `cargo test`. ## Solution - add more steps to the appropriate Rust file. ## Known Problems This duplicates work done to run tests when run on Github. @mockersf, suggestions on if we care / how we can mitigate it? --- .github/workflows/ci.yml | 2 +- tools/ci/src/main.rs | 16 ++++++++++++++++ 2 files changed, 17 insertions(+), 1 deletion(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 0ca71c2f32..5b7e1949a5 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -68,7 +68,7 @@ jobs: run: sudo apt-get update; sudo apt-get install --no-install-recommends libasound2-dev libudev-dev libwayland-dev libxkbcommon-dev - name: CI job # See tools/ci/src/main.rs for the commands this runs - run: cargo run -p ci + run: cargo run -p ci -- nonlocal check-benches: runs-on: ubuntu-latest diff --git a/tools/ci/src/main.rs b/tools/ci/src/main.rs index 336db74da7..8264db7b44 100644 --- a/tools/ci/src/main.rs +++ b/tools/ci/src/main.rs @@ -26,4 +26,20 @@ fn main() { .run() .expect("Compiler errors of the ECS compile fail tests seem to be different than expected! Check locally and compare rust versions."); } + + // These tests are already run on the CI + // Using a double-negative here allows end-users to have a nicer experience + // as we can pass in the extra argument to the CI script + let args: Vec = std::env::args().collect(); + if args.get(1) != Some(&"nonlocal".to_string()) { + // Run tests + cmd!("cargo test --workspace") + .run() + .expect("Please fix failing tests in output above."); + + // Run doc tests: these are ignored by `cargo test` + cmd!("cargo test --doc --workspace") + .run() + .expect("Please fix failing doc-tests in output above."); + } }