fix: make tun dependency linux-only #19
This file contains hidden or 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 | |
| on: | |
| push: | |
| branches: [ main ] | |
| pull_request: | |
| branches: [ main ] | |
| env: | |
| CARGO_TERM_COLOR: always | |
| jobs: | |
| build-and-test: | |
| strategy: | |
| matrix: | |
| os: [ubuntu-latest, windows-latest, macos-latest] | |
| runs-on: ${{ matrix.os }} | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - name: Install Rust | |
| uses: dtolnay/rust-toolchain@stable | |
| with: | |
| components: rustfmt, clippy | |
| - name: Install system dependencies | |
| if: matrix.os == 'ubuntu-latest' | |
| shell: bash | |
| run: | | |
| sudo apt-get update | |
| sudo apt-get install -y clang llvm libelf-dev | |
| - name: Cache dependencies | |
| uses: actions/cache@v4 | |
| with: | |
| path: | | |
| ~/.cargo/registry | |
| ~/.cargo/git | |
| target | |
| key: ${{ runner.os }}-cargo-${{ hashFiles('**/Cargo.lock') }} | |
| - name: Check formatting | |
| run: cargo fmt --check | |
| - name: Clippy (core packages) | |
| shell: bash | |
| run: | | |
| cargo clippy -p sush_core -p sush_daemon -p sush_bench -p sush_stream \ | |
| --all-targets -- -D warnings \ | |
| -A clippy::unwrap_used -A clippy::expect_used -A dead_code | |
| - name: Run unit tests | |
| run: cargo test -p sush_core -p sush_daemon -p sush_bench -p sush_stream | |
| - name: Run simulation torture | |
| if: matrix.os == 'ubuntu-latest' | |
| run: cargo test -p sush_core --test simulation_torture | |
| - name: Check compression bench | |
| if: matrix.os == 'ubuntu-latest' | |
| run: cargo bench -p sush_core --bench compression_bench --no-run | |
| - name: Build release (core) | |
| run: cargo build --release -p sush_core -p sush_daemon -p sush_bench -p sush_stream | |
| build-xdp: | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - name: Install Rust | |
| uses: dtolnay/rust-toolchain@stable | |
| with: | |
| components: rustfmt, clippy | |
| - name: Install XDP build dependencies | |
| shell: bash | |
| run: | | |
| sudo apt-get update | |
| sudo apt-get install -y clang llvm libelf-dev | |
| - name: Cache dependencies | |
| uses: actions/cache@v4 | |
| with: | |
| path: | | |
| ~/.cargo/registry | |
| ~/.cargo/git | |
| target | |
| key: ${{ runner.os }}-cargo-xdp-${{ hashFiles('**/Cargo.lock') }} | |
| - name: Build sush_xdp (userspace loader) | |
| shell: bash | |
| run: | | |
| # BPF target not available in stable - build.rs creates stub | |
| # This builds the userspace XDP loader which loads precompiled BPF | |
| cargo build -p sush_xdp --release | |
| continue-on-error: true | |
| - name: Clippy sush_xdp | |
| shell: bash | |
| run: | | |
| cargo clippy -p sush_xdp -- -D warnings \ | |
| -A clippy::unwrap_used -A clippy::expect_used | |
| continue-on-error: true |