[FIX] (CI) rust-cache key and fix audit #910
Workflow file for this run
This file contains 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/CD" | |
on: | |
push: | |
branches: ["master"] | |
pull_request: | |
branches: ["master"] | |
env: | |
CARGO_TERM_COLOR: always | |
jobs: | |
Unit-Tests: | |
name: Unit Tests | |
runs-on: ${{ matrix.os }} | |
strategy: | |
matrix: | |
os: [ubuntu-latest, macos-latest, windows-latest] | |
mode: [debug, release] | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Set up Rust | |
uses: actions-rs/toolchain@v1 | |
with: | |
toolchain: stable | |
profile: minimal | |
- name: Setup rust-cache | |
uses: Swatinem/rust-cache@v2 | |
with: | |
key: ${{ matrix.mode }} | |
- name: Install latest nextest | |
uses: taiki-e/install-action@nextest | |
- name: Install winget | |
if: runner.os == 'Windows' | |
uses: Cyberboss/install-winget@v1 | |
- name: Cargo fmt check | |
run: cargo +stable fmt --all -- --check | |
## System dependencies | |
# Install dependencies only on Linux | |
- name: Install dependencies (Linux) | |
if: runner.os == 'Linux' | |
run: sudo apt-get update && sudo apt-get install -y libudev-dev libpcap-dev | |
# Install dependencies only on Windows | |
- name: Download Npcap SDK (Windows) | |
if: runner.os == 'Windows' | |
run: | | |
winget install DaiyuuNobori.Win10Pcap --accept-source-agreements --accept-package-agreements | |
- name: Set Library and Include Paths (Windows) | |
if: runner.os == 'Windows' | |
run: | | |
$npcapLibDir = "$env:USERPROFILE\npcap-sdk\Lib\x64" | |
Add-Content -Path $env:GITHUB_ENV -Value "LIB=$npcapLibDir" | |
- name: Set Release Flag (Linux / MacOS) | |
if: runner.os != 'Windows' | |
run: echo "RELEASE_FLAG=$([[ '${{ matrix.mode }}' == 'release' ]] && echo '--release' || echo '')" >> $GITHUB_ENV | |
- name: Set Release Flag (Windows) | |
if: runner.os == 'Windows' && matrix.mode == 'release' | |
run: | | |
Add-Content -Path $env:GITHUB_ENV -Value "RELEASE_FLAG=--release" | |
# Run Clippy and build | |
- name: Run clippy on ${{ matrix.os }} with ${{matrix.mode}} | |
run: cargo +stable clippy $RELEASE_FLAG --workspace --all-targets -- --deny warnings | |
- name: Run clippy with all features on ${{ matrix.os }} with ${{matrix.mode}} | |
run: cargo +stable clippy $RELEASE_FLAG --workspace --all-targets --all-features -- --deny warnings | |
- name: Run build with all features on ${{ matrix.os }} with ${{matrix.mode}} | |
run: cargo +stable build $RELEASE_FLAG --workspace --all-targets --all-features | |
- name: Run doctests on ${{ matrix.os }} with debug | |
if: matrix.mode == 'debug' | |
run: cargo +stable test --doc --workspace | |
# Run Unit Tests | |
- name: Run Unit Tests on ${{ matrix.os }} with ${{matrix.mode}} | |
run: cargo +stable nextest run $RELEASE_FLAG --all-targets --workspace | |
- name: Run Unit Tests with all features on ${{ matrix.os }} with ${{matrix.mode}} | |
run: cargo +stable nextest run $RELEASE_FLAG --all-targets --workspace --all-features | |
# Run Project Generation Tests | |
- name: Install cargo-generate on ${{ matrix.os }} with debug | |
if: matrix.mode == 'debug' | |
run: cargo +stable install cargo-generate | |
- name: Generate new project on ${{ matrix.os }} with debug | |
if: matrix.mode == 'debug' | |
run: | | |
cd templates | |
cargo +stable generate -p cu_full --name test_project --destination . -d copper_source=local --silent | |
- name: Build generated project on ${{ matrix.os }} with debug | |
if: matrix.mode == 'debug' | |
run: | | |
cd templates/test_project | |
cargo +stable build | |
typos: | |
name: Typos Check | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: crate-ci/typos@master | |
with: | |
config: ./.config/_typos.toml |