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: dtolnay/rust-toolchain@stable - name: Setup Rust dependency caching uses: Swatinem/rust-cache@v2 - name: Build run: | cargo build --verbose -p aquatic_udp cargo build --verbose -p aquatic_http cargo build --verbose -p aquatic_ws build-macos: runs-on: macos-latest timeout-minutes: 10 steps: - uses: actions/checkout@v3 - name: Install latest stable Rust uses: dtolnay/rust-toolchain@stable - 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: dtolnay/rust-toolchain@stable - 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-bookworm options: --ulimit memlock=524288:524288 --privileged --security-opt="seccomp=unconfined" steps: - name: Checkout uses: actions/checkout@v2 - name: Test file transfers uses: ./.github/actions/test-file-transfers id: test_file_transfers