build(devcontainer): build nftables from source #374
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: 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 --features tokio | |
cargo clippy --all-targets --features async-process | |
build: | |
name: Rust Build & Test | |
runs-on: ubuntu-latest | |
strategy: | |
fail-fast: false | |
matrix: | |
rust_version: | |
- { name: msrv, version: "1.76" } | |
- { 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: | | |
CARGO_BIN=$(which cargo) | |
echo "abi <abi/4.0>, | |
include <tunables/global> | |
profile cargo $CARGO_BIN flags=(unconfined) { | |
userns, | |
# Site-specific additions and overrides. See local/README for details. | |
include if exists <local/cargo> | |
}" | sudo tee /etc/apparmor.d/cargo | |
sudo service apparmor reload | |
nft --version | |
cargo --config \ | |
"target.'cfg(target_os = \"linux\")'.runner = 'unshare -rn'" \ | |
test --verbose -- --ignored |