From 94c816acdf1c20f8ea38a510d4c5b4d7432f1acd Mon Sep 17 00:00:00 2001 From: vikingowl Date: Tue, 12 Aug 2025 05:09:24 +0200 Subject: [PATCH] [test] add CI workflow with Rust checks, cache setup, and auditing; update docs and README with CI details --- .github/workflows/ci.yml | 45 ++++++++++++++++++++++++++++++++++++++++ README.md | 2 +- docs/ci.md | 1 + 3 files changed, 47 insertions(+), 1 deletion(-) create mode 100644 .github/workflows/ci.yml diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml new file mode 100644 index 0000000..66aa8a3 --- /dev/null +++ b/.github/workflows/ci.yml @@ -0,0 +1,45 @@ +name: CI + +on: + push: + branches: [ main, master ] + pull_request: + branches: [ main, master ] + +permissions: + contents: read + +jobs: + ci: + name: ci + runs-on: ubuntu-latest + steps: + - name: Checkout + uses: actions/checkout@v4 + - name: Setup Rust + uses: dtolnay/rust-toolchain@stable + with: + components: clippy, rustfmt + - name: Show rustc/cargo versions + run: | + rustc -Vv + cargo -Vv + - name: Cache cargo registry + uses: actions/cache@v4 + with: + path: | + ~/.cargo/registry + ~/.cargo/git + target + key: ${{ runner.os }}-cargo-${{ hashFiles('**/Cargo.lock') }} + - name: Install cargo-audit + run: | + cargo install cargo-audit --locked || cargo install cargo-audit + - name: Format check + run: cargo fmt --all -- --check + - name: Clippy (warnings as errors) + run: cargo clippy --all-targets -- -D warnings + - name: Test + run: cargo test --all + - name: Audit + run: cargo audit diff --git a/README.md b/README.md index 152813b..a6b228b 100644 --- a/README.md +++ b/README.md @@ -77,7 +77,7 @@ Troubleshooting & docs - docs/ci.md – minimal CI checklist and job outline - CONTRIBUTING.md – PR checklist and workflow -CI status: [CI badge placeholder] +CI status: [CI workflow runs](actions/workflows/ci.yml) Examples See the examples/ directory for copy-paste scripts: diff --git a/docs/ci.md b/docs/ci.md index 7a6b109..e2834f2 100644 --- a/docs/ci.md +++ b/docs/ci.md @@ -28,3 +28,4 @@ Example GitHub Actions job (outline) Notes - For GPU features, set up appropriate runners and add `--features gpu-cuda|gpu-hip|gpu-vulkan` where applicable. - For docs-only changes, jobs still build/test to ensure doctests and examples compile when enabled. +- Mark the CI job named `ci` as a required status check for the default branch in repository branch protection settings.