Improve the logging parameters user friendiness #909
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: | |
build-debug-release: | |
name: Build | |
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 | |
- name: Install winget | |
if: runner.os == 'Windows' | |
uses: Cyberboss/install-winget@v1 | |
# Fail cheaply and early if the code is not even formatted correctly. | |
- 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 | |
# Those are needed for the integration tests on Windows | |
- name: Download Npcap SDK (Windows) | |
if: runner.os == 'Windows' | |
run: | | |
Invoke-WebRequest -Uri https://npcap.com/dist/npcap-sdk-1.13.zip -OutFile npcap-sdk.zip | |
Expand-Archive -Path npcap-sdk.zip -DestinationPath $env:USERPROFILE\npcap-sdk | |
Remove-Item npcap-sdk.zip | |
winget install --id DaiyuuNobori.Win10Pcap --disable-interactivity --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 in debug / release | |
- name: Run clippy in debug / release | |
run: cargo +stable clippy $RELEASE_FLAG --workspace --all-targets -- --deny warnings | |
- name: Run clippy in debug / release with mock and macro_debug | |
run: cargo +stable clippy $RELEASE_FLAG --workspace --all-targets --features mock,macro_debug -- --deny warnings | |
- name: Run clippy in debug /release with perf-ui, image and kornia | |
run: cargo +stable clippy $RELEASE_FLAG --workspace --all-targets --features perf-ui,image,kornia -- --deny warnings | |
- name: Run doctests in debug | |
if: matrix.mode == 'debug' | |
run: cargo +stable test --doc --workspace | |
- name: Run build in debug / release | |
run: cargo +stable build $RELEASE_FLAG --workspace --all-targets --all-features | |
test-debug-release: | |
name: Test | |
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 | |
- name: Install winget | |
if: runner.os == 'Windows' | |
uses: Cyberboss/install-winget@v1 | |
## 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 | |
# Those are needed for the integration tests on Windows | |
- name: Download Npcap SDK (Windows) | |
if: runner.os == 'Windows' | |
run: | | |
Invoke-WebRequest -Uri https://npcap.com/dist/npcap-sdk-1.13.zip -OutFile npcap-sdk.zip | |
Expand-Archive -Path npcap-sdk.zip -DestinationPath $env:USERPROFILE\npcap-sdk | |
Remove-Item npcap-sdk.zip | |
winget install --id DaiyuuNobori.Win10Pcap --disable-interactivity --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: Install latest nextest | |
uses: taiki-e/install-action@nextest | |
- 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 test in debug / release | |
- name: Run test in debug / release | |
run: cargo +stable nextest run $RELEASE_FLAG --all-targets --workspace | |
- name: Run test in debug / release with mock and macro_debug | |
run: cargo +stable nextest run $RELEASE_FLAG --all-targets --workspace --features mock,macro_debug | |
- name: Run test in debug / release with perf-ui, image and kornia | |
run: cargo +stable nextest run $RELEASE_FLAG --all-targets --workspace --features perf-ui,image,kornia | |
- name: Run test in debug / release with all features | |
run: cargo +stable nextest run $RELEASE_FLAG --all-targets --workspace --all-features | |
- name: Install cargo-generate | |
run: cargo +stable install cargo-generate | |
- name: Generate new project | |
run: | | |
cd templates | |
cargo +stable generate -p cu_full --name test_project --destination . -d copper_source=local --silent | |
- name: Build generated project | |
run: | | |
cd templates/test_project | |
cargo +stable build $RELEASE_FLAG | |
typos: | |
name: Typos Check | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: crate-ci/typos@master | |
with: | |
config: ./.config/_typos.toml |