This repository has been archived by the owner on Jan 4, 2024. It is now read-only.
better empty fm check #46
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
name: CI | |
permissions: | |
contents: read | |
pull-requests: read | |
on: | |
push: | |
pull_request: | |
jobs: | |
clippy: | |
name: Clippy | |
runs-on: ubuntu-latest | |
timeout-minutes: 30 | |
env: | |
RUSTFLAGS: -Dwarnings | |
steps: | |
- name: Checkout Repository | |
uses: actions/checkout@v4 | |
- name: Install Rust Stable | |
uses: dtolnay/rust-toolchain@stable | |
with: | |
components: clippy | |
- name: Install Rust Beta | |
uses: dtolnay/rust-toolchain@beta | |
with: | |
components: clippy | |
- name: Install Rust Nightly | |
uses: dtolnay/rust-toolchain@nightly | |
with: | |
components: clippy | |
- name: Clippy (stable) | |
run: cargo +stable clippy --all-features --all-targets --workspace && cargo clean | |
- name: Clippy (beta) | |
run: cargo +beta clippy --all-features --all-targets --workspace && cargo clean | |
- name: Clippy (nightly) | |
run: cargo +nightly clippy --all-features --all-targets --workspace && cargo clean | |
fmt: | |
name: Rustfmt | |
runs-on: ubuntu-latest | |
timeout-minutes: 30 | |
steps: | |
- name: Checkout Repository | |
uses: actions/checkout@v4 | |
- name: Install Rust Stable | |
uses: dtolnay/rust-toolchain@stable | |
with: | |
components: rustfmt | |
- name: Install Rust Beta | |
uses: dtolnay/rust-toolchain@beta | |
with: | |
components: rustfmt | |
- name: Install Rust Nightly | |
uses: dtolnay/rust-toolchain@nightly | |
with: | |
components: rustfmt | |
- name: Check Formatting (stable) | |
run: cargo +stable fmt --all --check | |
- name: Check Formatting (beta) | |
run: cargo +beta fmt --all --check | |
- name: Check Formatting (nightly) | |
run: cargo +nightly fmt --all --check | |
test: | |
name: Test ${{matrix.rust-channel}} ${{matrix.os == 'windows' && '(windows)' || ''}} | |
runs-on: ${{matrix.os}}-latest | |
timeout-minutes: 30 | |
strategy: | |
matrix: | |
rust-channel: [stable, beta, nightly] | |
os: [ubuntu, windows] | |
steps: | |
- name: Checkout Repository | |
uses: actions/checkout@v4 | |
- name: Install Rust | |
uses: dtolnay/rust-toolchain@master | |
with: | |
toolchain: ${{matrix.rust-channel}} | |
- name: Test Default Features | |
run: cargo test --all-targets --workspace | |
- name: Test All Features | |
run: cargo test --all-features --all-targets --workspace | |
- name: Test No Features | |
run: cargo test --no-default-features --all-targets --workspace | |
# just a simple job that requires all other jobs to pass for it to pass | |
# used for branch protection rules requiring ci pass (to avoid listing every matrix permutation) | |
ci: | |
name: CI Pass | |
runs-on: ubuntu-latest | |
needs: | |
- clippy | |
- fmt | |
- test | |
steps: | |
- run: echo "dummy message because github requires all jobs to have at least 1 step" |