split test job into timezones, timezones linux, rust versions and powerset features check

This commit is contained in:
Eric Sheppard 2022-09-02 22:08:58 +10:00 committed by Dirkjan Ochtman
parent eb82ae603d
commit 2827c22762
2 changed files with 42 additions and 84 deletions

View File

@ -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:

View File

@ -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