From 2827c22762f9fd881f38c041cdd1626020263de4 Mon Sep 17 00:00:00 2001 From: Eric Sheppard Date: Fri, 2 Sep 2022 22:08:58 +1000 Subject: [PATCH] split test job into timezones, timezones linux, rust versions and powerset features check --- .github/workflows/test.yml | 85 +++++++++++++++++++------------------- ci/github.sh | 41 ------------------ 2 files changed, 42 insertions(+), 84 deletions(-) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index dfb40f0c..88d776a4 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -11,58 +11,57 @@ on: - Cargo.toml jobs: - test: + timezones_linux: strategy: matrix: - os: [ubuntu-20.04, ubuntu-latest, macos-latest, windows-latest] - rust_version: [stable] - exhaustive_tz: [onetz] - check_combinatoric: [no_combinatoric] - include: - # check all tzs on most-recent OS's - - os: ubuntu-latest - rust_version: stable - exhaustive_tz: all_tzs - - os: windows-latest - rust_version: stable - exhaustive_tz: all_tzs - - os: macos-latest - rust_version: stable - exhaustive_tz: all_tzs - # compilation check - - os: ubuntu-latest - rust_version: stable - check_combinatoric: "combinatoric" - # test other rust versions - - os: ubuntu-latest - rust_version: beta - - os: ubuntu-latest - rust_version: nightly - - os: ubuntu-20.04 - rust_version: 1.38.0 - - os: macos-latest - rust_version: 1.38.0 - - os: windows-latest - rust_version: 1.38.0 - + os: [ubuntu-latest] + tz: ["ACST-9:30", "EST4", "UTC0", "Asia/Katmandu"] runs-on: ${{ matrix.os }} - steps: - uses: actions/checkout@v2 + - uses: dtolnay/rust-toolchain@stable + - uses: Swatinem/rust-cache@v1 + - run: cargo test --all-features --color=always -- --color=always - - name: Install rust - uses: actions-rs/toolchain@v1 + timezones_other: + strategy: + matrix: + os: [macos-latest, windows-latest] + tz: ["ACST-9:30", "EST4", "UTC0", "Asia/Katmandu"] + runs-on: ${{ matrix.os }} + steps: + - uses: actions/checkout@v2 + - uses: dtolnay/rust-toolchain@stable + - uses: Swatinem/rust-cache@v1 + - run: cargo test --lib --all-features --color=always -- --color=always + - run: cargo test --doc --all-features --color=always -- --color=always + + rust_versions: + strategy: + matrix: + os: [ubuntu-latest] + rust_version: ["1.38.0", "stable", "beta", "nightly"] + runs-on: ${{ matrix.os }} + steps: + - uses: actions/checkout@v2 + - uses: dtolnay/rust-toolchain@master with: toolchain: ${{ matrix.rust_version }} - override: true - - uses: Swatinem/rust-cache@v1 - - name: Build and Test - run: bash ci/github.sh - env: - RUST_VERSION: ${{ matrix.rust_version }} - EXHAUSTIVE_TZ: ${{ matrix.exhaustive_tz }} - CHECK_COMBINATORIC: ${{ matrix.check_combinatoric }} + - run: cargo test --lib --features serde --color=always -- --color=always + - run: cargo test --doc --features serde --color=always -- --color=always + + features_check: + strategy: + matrix: + os: [ubuntu-latest, macos-latest, windows-latest] + runs-on: ${{ matrix.os }} + steps: + - uses: actions/checkout@v2 + - uses: dtolnay/rust-toolchain@stable + - uses: taiki-e/install-action@cargo-hack + - uses: Swatinem/rust-cache@v1 + - run: cargo hack check --feature-powerset --optional-deps serde,rkyv --skip default --skip __internal_bench --skip __doctest --skip iana-time-zone --skip pure-rust-locales no_std: strategy: diff --git a/ci/github.sh b/ci/github.sh index 3c9ffb17..b53c1001 100755 --- a/ci/github.sh +++ b/ci/github.sh @@ -5,11 +5,6 @@ set -euo pipefail # shellcheck source=ci/_shlib.sh source "${BASH_SOURCE[0]%/*}/_shlib.sh" -TEST_TZS=(ACST-9:30 EST4 UTC0 Asia/Katmandu) -FEATURES=(std serde clock "alloc serde" unstable-locales) -CHECK_FEATURES=(alloc "std unstable-locales" "serde clock" "clock unstable-locales") -RUST_132_FEATURES=(rustc-serialize serde) - main() { if [[ "$*" =~ "-h" ]]; then echo -n "usage: ENV_VARS... $0 @@ -44,51 +39,15 @@ meaningful in the github actions feature matrix UI. test_wasm_wasi elif [[ ${CORE:-} == no_std ]]; then test_core - elif [[ ${EXHAUSTIVE_TZ:-} == all_tzs ]]; then - test_all_tzs - elif [[ ${CHECK_COMBINATORIC:-} == combinatoric ]]; then - check_combinatoric else test_regular UTC0 fi - elif [[ ${RUST_VERSION:-} == 1.38.0 ]]; then - test_132 else echo "ERROR: didn't run any tests" exit 1 fi } -test_all_tzs() { - for tz in "${TEST_TZS[@]}"; do - test_regular "$tz" - done -} - -test_regular() { - tz="$1" && shift - - runt env TZ="$tz" cargo test --features __doctest,unstable-locales --color=always -- --color=always - for feature in "${FEATURES[@]}"; do - runt env TZ="$tz" cargo test --no-default-features --features "$feature" --lib --color=always -- --color=always - done -} - -check_combinatoric() { - runt cargo check --no-default-features - runt cargo check --all-features - for feature in "${CHECK_FEATURES[@]}"; do - runt cargo check --no-default-features --features "$feature" --lib --color=always - done -} - -test_132() { - runv cargo build --color=always - for feature in "${RUST_132_FEATURES[@]}"; do - runt cargo build --features "$feature" --color=always - done -} - test_core() { ( cd ci/core-test