mirror of
https://github.com/chronotope/chrono.git
synced 2025-09-28 05:21:39 +00:00
split test job into timezones, timezones linux, rust versions and powerset features check
This commit is contained in:
parent
eb82ae603d
commit
2827c22762
85
.github/workflows/test.yml
vendored
85
.github/workflows/test.yml
vendored
@ -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:
|
||||
|
41
ci/github.sh
41
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
|
||||
|
Loading…
x
Reference in New Issue
Block a user