Skip to content

RUST-CI-001: capture ED2K UDP diagnostics #56

RUST-CI-001: capture ED2K UDP diagnostics

RUST-CI-001: capture ED2K UDP diagnostics #56

Workflow file for this run

name: CI
on:
push:
branches: [main]
pull_request:
workflow_dispatch:
concurrency:
group: ci-${{ github.ref }}
cancel-in-progress: true
env:
CARGO_TERM_COLOR: always
RUST_BACKTRACE: 1
# Pin the vendored MiniUPnP C source the native miniupnpc-sys build links against.
MINIUPNP_REF: bced81fb0b73ae78c9b911c89e881fbc6d4a5c7c
jobs:
build-test:
name: build+test (${{ matrix.os }})
runs-on: ${{ matrix.os }}
strategy:
fail-fast: false
matrix:
os: [ubuntu-latest, macos-latest, windows-latest]
steps:
- name: Checkout emulebb-rust
uses: actions/checkout@v4
- name: Checkout emulebb-miniupnp (native C source)
uses: actions/checkout@v4
with:
repository: emulebb/emulebb-miniupnp
ref: ${{ env.MINIUPNP_REF }}
path: .ci/emulebb-miniupnp
- name: Install Rust (stable)
uses: dtolnay/rust-toolchain@stable
- name: Set up Python
uses: actions/setup-python@v5
with:
python-version: "3.12"
- name: Cache cargo build
uses: Swatinem/rust-cache@v2
- name: Rust build/test gate
env:
MINIUPNP_ROOT: ${{ github.workspace }}/.ci/emulebb-miniupnp
X_LOCAL_IP: 127.0.0.1
run: python tools/rust_quality_gate.py ci-test
quality:
name: policy + format + clippy
runs-on: ubuntu-latest
steps:
- name: Checkout emulebb-rust
uses: actions/checkout@v4
- name: Install Rust (stable + rustfmt, clippy)
uses: dtolnay/rust-toolchain@stable
with:
components: rustfmt, clippy
- name: Set up Python
uses: actions/setup-python@v5
with:
python-version: "3.12"
- name: Rust quality gate
run: python tools/rust_quality_gate.py quick
supply-chain:
name: cargo-deny (advisories)
runs-on: ubuntu-latest
steps:
- name: Checkout emulebb-rust
uses: actions/checkout@v4
- name: cargo-deny — security advisories
uses: EmbarkStudios/cargo-deny-action@v2
with:
# Advisories (vulnerabilities/yanked) are the hard gate from day one.
# bans/licenses tighten after a dependency audit (see deny.toml).
command: check advisories