diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 6218e5a..5c45e7c 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -1,42 +1,38 @@ -on: [push] - name: ci +on: [push, pull_request] jobs: check: - name: Check + name: Check build strategy: matrix: os: [ubuntu-latest, macos-latest, windows-latest] runs-on: ${{ matrix.os }} steps: - - uses: actions/checkout@v2 - - uses: actions-rs/toolchain@v1 - with: - profile: minimal - toolchain: stable - - uses: actions-rs/cargo@v1 - with: - command: check - args: --release + - uses: actions/checkout@v4 + - uses: dtolnay/rust-toolchain@stable + - run: cargo check --release - msrv: - name: Check with MSRV + test: + name: Run Tests runs-on: ubuntu-latest steps: - - uses: actions/checkout@v2 - - uses: actions-rs/toolchain@v1 - with: - toolchain: 1.65.0 - override: true - profile: minimal - - uses: actions-rs/cargo@v1 - with: - command: check - args: --release + - uses: actions/checkout@v4 + - uses: dtolnay/rust-toolchain@stable + - name: Install nextest + uses: taiki-e/install-action@nextest + - run: cargo nextest run --all-features + + msrv: + name: Check MSRV + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + - uses: dtolnay/rust-toolchain@1.65.0 + - run: cargo check --release cross-check: - name: Check Cross + name: Check Cross-Compilation runs-on: ubuntu-latest strategy: matrix: @@ -44,70 +40,30 @@ jobs: - armv7-unknown-linux-gnueabihf - thumbv7em-none-eabihf steps: - - uses: actions/checkout@v2 - - uses: actions-rs/toolchain@v1 - with: - profile: minimal - toolchain: stable - target: ${{ matrix.target }} - override: true - - uses: actions-rs/cargo@v1 - with: - use-cross: true - command: check - args: --release --target=${{ matrix.target }} --no-default-features + - uses: actions/checkout@v4 + - uses: dtolnay/rust-toolchain@stable + - run: cargo check --release --target=${{ matrix.target }} --no-default-features fmt: - name: Rustfmt + name: Check formatting runs-on: ubuntu-latest steps: - - uses: actions/checkout@v2 - - uses: actions-rs/toolchain@v1 - with: - profile: minimal - toolchain: stable - override: true - - run: rustup component add rustfmt - - uses: actions-rs/cargo@v1 - with: - command: fmt - args: --all -- --check + - uses: actions/checkout@v4 + - uses: dtolnay/rust-toolchain@stable + - run: cargo fmt --all -- --check - check-doc: + docs: name: Check Documentation Build runs-on: ubuntu-latest steps: - - uses: actions/checkout@v2 - - uses: actions-rs/toolchain@v1 - with: - toolchain: nightly - override: true - profile: minimal - - uses: actions-rs/cargo@v1 - with: - command: doc - args: --all-features + - uses: actions/checkout@v4 + - uses: dtolnay/rust-toolchain@nightly + - run: cargo +nightly doc --all-features --config 'build.rustdocflags=["--cfg", "docs_rs"]' clippy: name: Clippy runs-on: ubuntu-latest steps: - - uses: actions/checkout@v2 - - uses: actions-rs/toolchain@v1 - with: - profile: minimal - toolchain: stable - - run: rustup component add clippy - - uses: actions-rs/cargo@v1 - with: - command: clippy - args: -- -D warnings - - ci: - if: ${{ success() }} - # all new jobs must be added to this list - needs: [check, fmt, clippy] - runs-on: ubuntu-latest - steps: - - name: CI succeeded - run: exit 0 + - uses: actions/checkout@v4 + - uses: dtolnay/rust-toolchain@latest + - run: cargo clippy -- -D warnings