© Anton Dolganin 2025
Пример workflow для Rust на GitHub Actions:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Install cargo-audit, cargo-deny, tarpaulin, chef
run: cargo install cargo-audit cargo-deny cargo-tarpaulin cargo-chef
- name: Security check
run: cargo audit
- name: Dependency policy check
run: cargo deny check
- name: Test coverage gate
run: cargo tarpaulin --fail-under 80
- name: Build using cargo chef
run: |
cargo chef prepare --recipe-path recipe.json
cargo chef cook --recipe-path recipe.json
cargo build --release
Этот пайплайн:
Что делает каждый шаг:
Security check (cargo-audit)
cargo audit
Проверяет Cargo.lock на уязвимые и устаревшие зависимости по базе RustSec.
Dependency policy check (cargo-deny)
cargo deny check
Валидирует зависимости: лицензии, запрещенные пакеты, дубли и т.п. — гарантия, что стек зависит только от “разрешённых” крейтов.
Test coverage gate (cargo-tarpaulin)
cargo tarpaulin --fail-under 80
Считает покрытие тестами и валит pipeline, если оно ниже 80%. Простой quality-gate.
Fast build using cargo-chef
cargo chef prepare --recipe-path recipe.json
cargo chef cook --recipe-path recipe.json
cargo build --release
via @Let's Get Rusty
© Anton Dolganin 2025