name: CI on: push: branches: [ master ] pull_request: branches: [ master ] env: CARGO_TERM_COLOR: always jobs: build-linux: runs-on: ubuntu-latest timeout-minutes: 20 steps: - uses: actions/checkout@v3 - name: Install latest stable Rust uses: actions-rs/toolchain@v1 with: profile: minimal toolchain: stable override: true - name: Install dependencies run: sudo apt-get update -y && sudo apt-get install libhwloc-dev -y - name: Setup Rust dependency caching uses: Swatinem/rust-cache@v2 - name: Build run: | cargo build --verbose -p aquatic_udp --features "cpu-pinning" cargo build --verbose -p aquatic_http cargo build --verbose -p aquatic_ws --features "prometheus" build-macos: runs-on: macos-latest timeout-minutes: 10 steps: - uses: actions/checkout@v3 - name: Install latest stable Rust uses: actions-rs/toolchain@v1 with: profile: minimal toolchain: stable override: true - name: Setup Rust dependency caching uses: Swatinem/rust-cache@v2 - name: Build run: cargo build --verbose -p aquatic_udp test: runs-on: ubuntu-latest timeout-minutes: 20 steps: - uses: actions/checkout@v3 - name: Install latest stable Rust uses: actions-rs/toolchain@v1 with: profile: minimal toolchain: stable override: true - name: Install dependencies run: sudo apt-get update -y && sudo apt-get install libhwloc-dev -y - name: Setup Rust dependency caching uses: Swatinem/rust-cache@v2 - name: Run tests run: cargo test --verbose --profile "test-fast" --workspace - name: Run tests (aquatic_udp with io_uring) run: cargo test --verbose --profile "test-fast" -p aquatic_udp --features "io-uring" test-file-transfers: runs-on: ubuntu-latest name: "Test BitTorrent file transfers (UDP, HTTP, WebTorrent)" timeout-minutes: 20 container: image: rust:1-bullseye options: --ulimit memlock=524288:524288 steps: - name: Checkout uses: actions/checkout@v2 - name: Test file transfers uses: ./.github/actions/test-file-transfers id: test_file_transfers