diff --git a/.github/workflows/rust.yml b/.github/workflows/rust.yml new file mode 100644 index 00000000..c0319a4b --- /dev/null +++ b/.github/workflows/rust.yml @@ -0,0 +1,52 @@ +name: Rust + +on: + push: + branches: [ "master" ] + pull_request: + branches: [ "master" ] + +env: + CARGO_TERM_COLOR: always + RUSTFLAGS: "-D warnings" + +jobs: + build: + name: Test debug on ${{ matrix.os }} + runs-on: ${{ matrix.os }} + strategy: + matrix: + os: [ubuntu-latest, windows-latest, macOS-latest] + + steps: + - uses: actions/checkout@v3 + - uses: Swatinem/rust-cache@v2.7.0 + - name: Versions + run: cargo --version && rustc --version && cargo fmt -- --version && cargo clippy -- --version + - run: cargo fmt --all -- --check + - run: cargo clippy --all -- --deny=warnings + - run: cargo clippy --all --no-default-features -- --deny=warnings + - run: cargo audit --ignore RUSTSEC-2020-0056 --ignore RUSTSEC-2022-0048 --ignore RUSTSEC-2020-0071 + - run: cargo build --all + - run: cargo build --all --no-default-features + - run: cargo test --all + + build-release: + name: Test release on ${{ matrix.os }} + runs-on: ${{ matrix.os }} + strategy: + matrix: + os: [ubuntu-latest, windows-latest, macOS-latest] + + steps: + - uses: actions/checkout@v3 + - uses: Swatinem/rust-cache@v2.7.0 + - name: Versions + run: cargo --version && rustc --version && cargo fmt -- --version && cargo clippy -- --version + - run: cargo fmt --all -- --check + - run: cargo clippy --release --all -- --deny=warnings + - run: cargo clippy --release --all --no-default-features -- --deny=warnings + - run: cargo build --release --all + - run: cargo build --release --all --no-default-features + - run: cargo test --release --all +