Document and test against Minimum Supported Rust Version #252
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: Rust | |
on: | |
push: | |
branches: | |
- main | |
pull_request: | |
branches: [ "*" ] | |
schedule: | |
- cron: '13 3 * * 0' | |
env: | |
CARGO_TERM_COLOR: always | |
RUSTFLAGS: "-Dwarnings" | |
jobs: | |
commitlint: | |
runs-on: ubuntu-latest | |
name: Commitlint | |
steps: | |
- name: Conventional Commitlint | |
uses: opensource-nepal/commitlint@v1 | |
fmt: | |
name: Rustfmt | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout repo | |
uses: actions/checkout@v4 | |
- name: Install Rust nightly toolchain with clippy | |
uses: dtolnay/rust-toolchain@nightly | |
with: | |
components: rustfmt | |
- name: Run Rustfmt | |
run: cargo fmt -- --check | |
clippy: | |
name: Clippy | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout repo | |
uses: actions/checkout@v4 | |
- name: Install Rust nightly toolchain with clippy | |
uses: dtolnay/rust-toolchain@nightly | |
with: | |
components: clippy | |
- name: Run Clippy | |
run: cargo clippy --all-targets --all-features | |
build: | |
name: Rust Build & Test | |
runs-on: ubuntu-latest | |
strategy: | |
fail-fast: false | |
matrix: | |
rust_version: | |
- { name: msrv, version: "1.65" } | |
- { name: stable, version: stable } | |
steps: | |
- name: Checkout repo | |
uses: actions/checkout@v4 | |
- name: Install Rust ${{ matrix.rust_version.name }} (${{ matrix.rust_version.version }}) | |
uses: dtolnay/rust-toolchain@stable | |
with: | |
toolchain: ${{ matrix.rust_version.version }} | |
- name: Build | |
run: cargo build --verbose | |
- name: Run tests | |
run: cargo test --verbose | |
- name: Run tests (with netns) | |
run: | | |
nft --version | |
cargo --config \ | |
"target.'cfg(target_os = \"linux\")'.runner = 'unshare -rn'" \ | |
test --verbose -- --ignored |