diff --git a/.github/workflows/checks.yaml b/.github/workflows/checks.yaml new file mode 100644 index 0000000..b752c54 --- /dev/null +++ b/.github/workflows/checks.yaml @@ -0,0 +1,53 @@ +name: Checks + +on: ["push", "pull_request"] + +env: + CARGO_TERM_COLOR: always + RUST_TOOLCHAIN: 1.86.0 + +jobs: + checks: + runs-on: ubuntu-latest + + steps: + - name: Checkout code + uses: actions/checkout@v5 + + - name: Install Rust toolchain + uses: dtolnay/rust-toolchain@master + with: + toolchain: ${{ env.RUST_TOOLCHAIN }} + components: clippy, rustfmt + + - name: Rust Cache + uses: Swatinem/rust-cache@v2 + + - name: Cache vcpkg + uses: actions/cache@v4 + with: + path: target/vcpkg + key: A-vcpkg-${{ runner.os }}-${{ hashFiles('Cargo.toml', 'Cargo.lock') }} + restore-keys: | + A-vcpkg-${{ runner.os }}- + + - name: Vcpkg Linux Dependencies + run: | + sudo apt-get update + sudo apt-get install -y libltdl-dev + + - name: Vcpkg + run: | + cargo install cargo-vcpkg + cargo vcpkg -v build + + - name: Run clippy + run: cargo clippy -- -D warnings + + - name: Check formatting + run: cargo fmt -- --check + + - uses: taiki-e/install-action@cargo-audit + + - name: Run security audit + run: cargo audit diff --git a/.github/workflows/tests.yaml b/.github/workflows/tests.yaml index b24da5a..341b7ba 100644 --- a/.github/workflows/tests.yaml +++ b/.github/workflows/tests.yaml @@ -1,4 +1,4 @@ -name: Tests & Checks +name: Tests on: ["push", "pull_request"] @@ -18,7 +18,6 @@ jobs: uses: dtolnay/rust-toolchain@master with: toolchain: ${{ env.RUST_TOOLCHAIN }} - components: clippy, rustfmt - name: Rust Cache uses: Swatinem/rust-cache@v2 @@ -45,14 +44,3 @@ jobs: - name: Run nextest run: cargo nextest run --workspace - - - name: Run clippy - run: cargo clippy -- -D warnings - - - name: Check formatting - run: cargo fmt -- --check - - - uses: taiki-e/install-action@cargo-audit - - - name: Run security audit - run: cargo audit diff --git a/README.md b/README.md index 1e5a166..10ca836 100644 --- a/README.md +++ b/README.md @@ -4,11 +4,12 @@ # Pac-Man -[![A project just for fun, no really!][badge-justforfunnoreally]][justforfunnoreally] ![Built with Rust][badge-built-with-rust] [![Build Status][badge-build]][build] [![Tests Status][badge-test]][test] [![If you're seeing this, Coveralls.io is broken again and it's not my fault.][badge-coverage]][coverage] [![Online Demo][badge-online-demo]][demo] +[![A project just for fun, no really!][badge-justforfunnoreally]][justforfunnoreally] ![Built with Rust][badge-built-with-rust] [![Build Status][badge-build]][build] [![Tests Status][badge-test]][test] [![Checks Status][badge-checks]][checks] [![If you're seeing this, Coveralls.io is broken again and it's not my fault.][badge-coverage]][coverage] [![Online Demo][badge-online-demo]][demo] [badge-built-with-rust]: https://img.shields.io/badge/Built_with-Rust-blue?logo=rust [badge-justforfunnoreally]: https://img.shields.io/badge/justforfunnoreally-dev-9ff [badge-test]: https://github.com/Xevion/Pac-Man/actions/workflows/tests.yaml/badge.svg +[badge-checks]: https://github.com/Xevion/Pac-Man/actions/workflows/checks.yaml/badge.svg [badge-build]: https://github.com/Xevion/Pac-Man/actions/workflows/build.yaml/badge.svg [badge-coverage]: https://coveralls.io/repos/github/Xevion/Pac-Man/badge.svg?branch=master [badge-online-demo]: https://img.shields.io/badge/Online%20Demo-Click%20Me!-brightgreen @@ -16,6 +17,7 @@ [justforfunnoreally]: https://justforfunnoreally.dev [build]: https://github.com/Xevion/Pac-Man/actions/workflows/build.yaml [test]: https://github.com/Xevion/Pac-Man/actions/workflows/tests.yaml +[checks]: https://github.com/Xevion/Pac-Man/actions/workflows/checks.yaml [coverage]: https://coveralls.io/github/Xevion/Pac-Man?branch=master [demo]: https://xevion.github.io/Pac-Man/