name: ci on: [push, pull_request] jobs: test: name: test runs-on: ${{ matrix.os }} strategy: matrix: os: [ubuntu-latest, windows-latest, macOS-latest] rust: [1.76.0, stable, beta, nightly] env: RUSTFLAGS: "-D warnings" steps: - name: Checkout repository uses: actions/checkout@v1 - name: Install Rust uses: hecrj/setup-rust-action@v2 with: rust-version: ${{ matrix.rust }} - if: matrix.rust == 'stable' run: rustup component add clippy - if: matrix.rust == 'stable' run: cargo clippy --all-features --all-targets -- -D warnings - if: matrix.rust == 'stable' && matrix.os == 'ubuntu-latest' run: cargo fmt --all -- --check - run: cargo check --no-default-features --all-targets - run: cargo test --all-features minimal-versions: name: Check minimal versions runs-on: ubuntu-latest env: RUSTFLAGS: "-D warnings" steps: - name: Checkout repository uses: actions/checkout@v1 - name: Install Rust uses: hecrj/setup-rust-action@v2 with: rust-version: "1.68.2" - name: Install nightly Rust run: rustup install nightly - name: Check with minimal-versions run: | cargo +nightly update -Z minimal-versions cargo check --all-features --all-targets --locked