Merge pull request #854 from mansur-codes/feat/issue-662-zeroize-secr… #922
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| name: CI | ||
|
Check failure on line 1 in .github/workflows/ci.yml
|
||
| on: | ||
| push: | ||
| pull_request: | ||
| workflow_call: | ||
| jobs: | ||
| fmt: | ||
| name: Rustfmt | ||
| runs-on: ubuntu-latest | ||
| steps: | ||
| - uses: actions/checkout@v4 | ||
| - uses: dtolnay/rust-toolchain@stable | ||
| with: | ||
| components: rustfmt | ||
| - name: Check formatting | ||
| run: cargo fmt --all --check | ||
| msrv: | ||
| name: MSRV (Rust 1.80) | ||
| runs-on: ubuntu-latest | ||
| steps: | ||
| - uses: actions/checkout@v4 | ||
| - uses: dtolnay/rust-toolchain@1.80.0 | ||
| - name: Install system dependencies | ||
| run: sudo apt-get update && sudo apt-get install -y libudev-dev | ||
| - name: Verify compilation on Rust 1.80 MSRV | ||
| run: cargo check --locked --workspace | ||
| deny: | ||
| name: Cargo Deny | ||
| runs-on: ubuntu-latest | ||
| steps: | ||
| - uses: actions/checkout@v4 | ||
| - uses: dtolnay/rust-toolchain@stable | ||
| - name: Install cargo-deny | ||
| uses: EmbarkStudios/cargo-deny-action@v2 | ||
| with: | ||
| command: check | ||
| arguments: --all-features | ||
| secure-defaults: | ||
| name: Secure Defaults Audit | ||
| doctests: | ||
| name: Documentation Tests | ||
| runs-on: ubuntu-latest | ||
| steps: | ||
| - uses: actions/checkout@v4 | ||
| - uses: dtolnay/rust-toolchain@stable | ||
| - name: Install system dependencies | ||
| run: sudo apt-get update && sudo apt-get install -y libudev-dev | ||
| - name: Run secure defaults audit | ||
| run: cargo test --test secure_defaults_audit --locked | ||
| - name: Run doctests | ||
| run: cargo test --doc --locked | ||
| build-and-test: | ||
| name: Build and Test | ||
| runs-on: ubuntu-latest | ||
| steps: | ||
| - uses: actions/checkout@v4 | ||
| - uses: dtolnay/rust-toolchain@stable | ||
| - name: Install system dependencies | ||
| run: sudo apt-get update && sudo apt-get install -y libudev-dev | ||
| - name: Build | ||
| run: cargo build --locked | ||
| - name: CLI JSON contract stability | ||
| run: cargo test --test json_contract_stability --locked | ||
| - name: Build and Test | ||
| run: cargo test --locked -- --test-threads=1 | ||
| - name: Verify Cargo.lock immutability | ||
| run: git diff --exit-code Cargo.lock | ||
| docs-cheatsheet: | ||
| name: Docs Cheat Sheet (anti-drift) | ||
| runs-on: ubuntu-latest | ||
| steps: | ||
| - uses: actions/checkout@v4 | ||
| - uses: dtolnay/rust-toolchain@stable | ||
| - name: Install system dependencies | ||
| run: sudo apt-get update && sudo apt-get install -y libudev-dev | ||
| - name: Build (regenerates cheat sheet from clap metadata) | ||
| run: cargo build --locked | ||
| - name: Fail when cheat sheet is stale | ||
| run: git diff --exit-code -- docs/COMMAND_CHEATSHEET.md | ||
| clippy: | ||
| name: Clippy Lint | ||
| runs-on: ubuntu-latest | ||
| steps: | ||
| - uses: actions/checkout@v4 | ||
| - uses: dtolnay/rust-toolchain@stable | ||
| with: | ||
| components: clippy | ||
| - name: Install system dependencies | ||
| run: sudo apt-get update && sudo apt-get install -y libudev-dev | ||
| - name: Run Clippy | ||
| run: cargo clippy --all-features --locked -- -D warnings | ||
| smoke: | ||
| name: CLI Smoke Tests (Linux) | ||
| runs-on: ubuntu-latest | ||
| steps: | ||
| - uses: actions/checkout@v4 | ||
| - uses: dtolnay/rust-toolchain@stable | ||
| - name: Install system dependencies | ||
| run: sudo apt-get update && sudo apt-get install -y libudev-dev | ||
| - name: Build | ||
| run: cargo build --locked | ||
| - name: Cross-platform CLI Integration Tests | ||
| run: cargo test --test cli_cross_platform --locked | ||
| - name: Rust smoke tests | ||
| run: cargo test --test cli_smoke --locked | ||
| - name: Shell smoke script | ||
| run: bash scripts/e2e-smoke.sh | ||
| - name: Verify Cargo.lock immutability | ||
| run: git diff --exit-code Cargo.lock | ||
| cli-macos: | ||
| name: macOS CLI Tests | ||
| runs-on: macos-latest | ||
| steps: | ||
| - uses: actions/checkout@v4 | ||
| - uses: dtolnay/rust-toolchain@stable | ||
| - name: Build CLI | ||
| run: cargo build --locked | ||
| - name: Cross-platform CLI Integration Tests | ||
| run: cargo test --test cli_cross_platform --locked | ||
| - name: Rust smoke tests | ||
| run: cargo test --test cli_smoke --locked | ||
| - name: Verify Cargo.lock immutability | ||
| run: git diff --exit-code Cargo.lock | ||
| cli-windows: | ||
| name: Windows CLI Tests | ||
| runs-on: windows-latest | ||
| steps: | ||
| - uses: actions/checkout@v4 | ||
| - uses: dtolnay/rust-toolchain@stable | ||
| - name: Build CLI | ||
| run: cargo build --locked | ||
| - name: Cross-platform CLI Integration Tests | ||
| run: cargo test --test cli_cross_platform --locked | ||
| - name: Rust smoke tests | ||
| run: cargo test --test cli_smoke --locked | ||
| - name: Verify Cargo.lock immutability | ||
| run: git diff --exit-code Cargo.lock | ||