Restructure CI tests #230
Workflow file for this run
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
on: | |
pull_request: | |
branches: | |
- master | |
- "[0-9]+.[0-9]+" | |
push: | |
branches: | |
- staging | |
- trying | |
name: Continuous integration | |
jobs: | |
compile_and_test_msrv: | |
name: Compile and test | |
strategy: | |
matrix: | |
os: [ubuntu-latest, macos-latest, windows-latest] | |
runs-on: ${{ matrix.os }} | |
env: | |
RUSTFLAGS: -D warnings | |
steps: | |
- uses: actions/checkout@v3 | |
- uses: dtolnay/[email protected] | |
- name: Minimal check | |
run: cargo check -v -p palette --no-default-features --features std | |
- name: find-crate check | |
run: cargo check -v -p palette --no-default-features --features "std find-crate" | |
- name: Default check | |
run: cargo check -v --workspace --exclude no_std_test | |
- name: Test all features | |
run: cargo test -v -p palette --all-features | |
- name: Test each feature | |
shell: bash | |
working-directory: palette | |
run: bash ../scripts/test_features.sh | |
check_stable_beta_nightly: | |
name: Compile and test | |
strategy: | |
matrix: | |
toolchain: [beta, stable, nightly] | |
runs-on: ubuntu-latest | |
env: | |
RUSTFLAGS: -D warnings | |
steps: | |
- uses: actions/checkout@v3 | |
- uses: dtolnay/rust-toolchain@master | |
with: | |
toolchain: ${{ matrix.toolchain }} | |
- name: Check all features | |
run: cargo check -v -p palette --all-features | |
no_std: | |
name: "Test #[no_std]" | |
runs-on: ubuntu-latest | |
env: | |
RUSTFLAGS: -D warnings | |
steps: | |
- uses: actions/checkout@v3 | |
- uses: dtolnay/rust-toolchain@nightly | |
with: | |
targets: thumbv6m-none-eabi | |
- name: "Build with #[no_std]" | |
run: cargo build -v --package no_std_test --features nightly --target thumbv6m-none-eabi | |
miri: | |
name: Miri tests | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v3 | |
- uses: dtolnay/rust-toolchain@nightly | |
with: | |
components: miri | |
- name: Unit tests | |
run: cargo miri test --lib --features "bytemuck" -- -Z unstable-options --report-time | |
- name: Documentation tests | |
run: cargo miri test --doc --features "bytemuck" -- -Z unstable-options --report-time | |
# Refs: https://github.com/rust-lang/crater/blob/9ab6f9697c901c4a44025cf0a39b73ad5b37d198/.github/workflows/bors.yml#L125-L149 | |
# | |
# ALL THE PREVIOUS JOBS NEEDS TO BE ADDED TO THE `needs` SECTION OF THIS JOB! | |
ci-success: | |
name: ci | |
if: success() | |
needs: | |
- compile_and_test_msrv | |
- check_stable_beta_nightly | |
- no_std | |
- miri | |
runs-on: ubuntu-latest | |
steps: | |
- name: Mark the job as a success | |
run: exit 0 |