Skip to content

Verify

Verify #778

Workflow file for this run

name: Verify
on:
schedule:
- cron: "0 17 * * *"
# Allows you to run this workflow manually from the Actions tab
workflow_dispatch:
concurrency:
group: verify-${{ github.ref }}
cancel-in-progress: true
jobs:
test-all-features:
name: verify functionality of rattan
strategy:
max-parallel: 1 # Avoid resource contention
fail-fast: false
matrix:
include:
- kernel: "5.4"
llvm: "14"
- kernel: "5.15"
llvm: "17"
- kernel: "6.8"
llvm: "17"
- kernel: "6.12"
llvm: "17"
runs-on: ${{ matrix.kernel }}
env:
# CI only needs line numbers for panic backtraces, not full DWARF.
# Overrides the `debug = true` (for cargo flamegraph) in the root Cargo.toml
# to cut release build artifact size and disk writes.
CARGO_PROFILE_RELEASE_DEBUG: "line-tables-only"
# LLVM is preinstalled on the runners (apt: clang-N llvm-N libclang-N-dev).
# Point bindgen (via libbpf-sys) at the matching preinstalled libclang.
LIBCLANG_PATH: /usr/lib/llvm-${{ matrix.llvm }}/lib
steps:
- uses: actions/checkout@v5
with:
submodules: recursive
- uses: dtolnay/rust-toolchain@stable
- run: sudo apt update && sudo apt install ethtool iputils-ping iproute2 iperf3 datamash bc pkg-config m4 libelf-dev libpcap-dev gcc-multilib libnftnl-dev libmnl-dev autoconf automake autopoint flex bison gawk libtool -y
- name: Use preinstalled LLVM ${{ matrix.llvm }}
run: echo "/usr/lib/llvm-${{ matrix.llvm }}/bin" >> "$GITHUB_PATH"
- run: sudo ./scripts/clean_stdenv.sh -a
- name: Performance verification
run: |
/bin/bash ./ci/scripts/verify.sh
cd ./ci/scripts/ && tar -czf cache/verify_log.tar.gz cache/*.log
- name: Archive verification results
uses: actions/upload-artifact@v4
with:
name: verification_${{ matrix.kernel }}
path: |
ci/scripts/cache/verify.html
ci/scripts/cache/verify_log.tar.gz