feat(all): refactor all #54
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: | |
push: | |
branches: [main] | |
pull_request: | |
branches: | |
- main | |
name: CI | |
env: | |
RUSTFLAGS: -D warnings | |
CARGO_TERM_COLOR: always | |
jobs: | |
lint: | |
name: Lint | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4 | |
- uses: dtolnay/rust-toolchain@stable | |
with: | |
components: rustfmt, clippy | |
- uses: Swatinem/rust-cache@23bce251a8cd2ffc3c1075eaa2367cf899916d84 # v2 | |
- name: Lint (clippy) | |
run: cargo clippy --all-features --all-targets | |
- name: Lint (rustfmt) | |
run: cargo xfmt --check | |
build: | |
name: Build and test | |
runs-on: ${{ matrix.os }} | |
strategy: | |
matrix: | |
os: | |
- ubuntu-latest | |
# macos-14 for M1 runners | |
- macos-14 | |
rust-version: [nightly] | |
fail-fast: false | |
steps: | |
- uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4 | |
- uses: dtolnay/rust-toolchain@master | |
with: | |
toolchain: ${{ matrix.rust-version }} | |
- uses: Swatinem/rust-cache@23bce251a8cd2ffc3c1075eaa2367cf899916d84 # v2 | |
with: | |
# Matrix instances (other than OS) need to be added to this explicitly | |
key: ${{ matrix.rust-version }} | |
- name: Install latest nextest release | |
uses: taiki-e/install-action@nextest | |
- name: Build quick-junit | |
run: cargo build --package quick-junit | |
- name: Build nextest-metadata | |
run: cargo build --package nextest-metadata | |
- name: Build cargo-nextest without self-update | |
run: cargo build --package cargo-nextest --no-default-features --features default-no-update | |
- name: Build cargo-nextest | |
run: cargo build --package cargo-nextest | |
- name: Build all targets | |
run: cargo build --all-targets | |
- name: Build all targets with all features | |
run: cargo build --all-targets --all-features | |
- name: Doctests | |
run: cargo test --doc | |
- name: Test with locally built nextest | |
run: cargo local-nt run --profile ci | |
- name: Test with latest nextest release | |
run: cargo nextest run --profile ci | |
- name: Test without double-spawning | |
if: ${{ matrix.os == 'ubuntu-latest' || matrix.os == 'macos-14' }} | |
env: | |
NEXTEST_DOUBLE_SPAWN: 0 | |
run: cargo local-nt run --profile ci |