Implement CAM16 #298
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 MSRV | |
strategy: | |
matrix: | |
os: [ubuntu-latest, macos-latest, windows-latest] | |
runs-on: ${{ matrix.os }} | |
env: | |
RUSTFLAGS: -D warnings | |
steps: | |
- uses: actions/checkout@v3 | |
- uses: dtolnay/rust-toolchain@1.60.0 | |
with: | |
components: clippy | |
- uses: taiki-e/install-action@cargo-hack | |
- name: Minimal check | |
run: cargo clippy -v -p palette --no-default-features --features std | |
- name: find-crate check | |
run: cargo clippy -v -p palette --no-default-features --features "std find-crate" | |
- name: Default check | |
run: cargo clippy -v -p palette | |
- name: Check all features | |
run: cargo clippy -v -p palette --all-features | |
- name: Test all features | |
run: cargo test -v -p palette --all-features | |
- name: Test each feature | |
run: cargo hack test --tests --feature-powerset --ignore-private --skip default,find-crate --optional-deps libm --depth 2 | |
integration_tests: | |
name: integration tests | |
strategy: | |
matrix: | |
os: [ubuntu-latest, macos-latest, windows-latest] | |
runs-on: ${{ matrix.os }} | |
env: | |
RUSTFLAGS: -D warnings | |
steps: | |
- uses: actions/checkout@v3 | |
- uses: dtolnay/rust-toolchain@stable | |
- name: Run integration tests | |
run: cargo test -v -p integration_tests --all-features | |
check_stable_beta_nightly: | |
name: Quick check | |
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 }} | |
components: clippy | |
- uses: taiki-e/install-action@cargo-hack | |
- name: Check all features | |
run: cargo clippy -v -p palette --all-features | |
- name: Check each feature with libm | |
run: cargo hack clippy --each-feature --ignore-private --features libm --skip default,find-crate --ignore-unknown-features | |
- name: Check each feature with std | |
run: cargo hack clippy --each-feature --ignore-private --features std --skip default,find-crate --optional-deps libm --ignore-unknown-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 -p no_std_test --all-features --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 -p palette --lib --features "bytemuck" -- -Z unstable-options --report-time | |
- name: Documentation tests | |
run: cargo miri test -p palette --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 | |
- integration_tests | |
- check_stable_beta_nightly | |
- no_std | |
- miri | |
runs-on: ubuntu-latest | |
steps: | |
- name: Mark the job as a success | |
run: exit 0 |