name: cargo on: push: branches: [master] pull_request: branches: [master] concurrency: group: ${{ github.workflow }}-${{ github.ref }} cancel-in-progress: true env: CARGO_TERM_COLOR: always jobs: test: name: Test strategy: matrix: os: ["ubuntu-latest", "macos-latest"] toolchain: - 1.65.0 # min supported version (https://github.com/webrtc-rs/webrtc/#toolchain) - stable runs-on: ${{ matrix.os }} steps: - uses: actions/checkout@v3 - name: Install Rust ${{ matrix.toolchain }} uses: actions-rs/toolchain@v1 with: toolchain: ${{ matrix.toolchain }} override: true - name: Install Rust run: rustup update stable - name: 📦 Cache cargo registry uses: actions/cache@v3 with: path: ~/.cargo/registry key: ${{ runner.os }}-cargo-registry-${{ hashFiles('**/Cargo.lock') }} restore-keys: | ${{ runner.os }}-cargo-registry- - uses: actions-rs/toolchain@v1 with: toolchain: ${{ matrix.toolchain }} profile: minimal override: true - name: 🏭 Cache dependencies uses: Swatinem/rust-cache@v2 - name: Test run: cargo test --features metrics test_windows: name: Test (windows) strategy: matrix: toolchain: - 1.63.0 # min supported version (https://github.com/webrtc-rs/webrtc/#toolchain) - stable runs-on: windows-latest steps: - uses: actions/checkout@v3 - name: Install Rust ${{ matrix.toolchain }} uses: actions-rs/toolchain@v1 with: toolchain: ${{ matrix.toolchain }} override: true - name: Install Rust run: rustup update stable - name: 📦 Cache cargo registry uses: actions/cache@v3 with: path: ~/.cargo/registry key: ${{ runner.os }}-cargo-registry-${{ hashFiles('**/Cargo.lock') }} restore-keys: | ${{ runner.os }}-cargo-registry- - uses: actions-rs/toolchain@v1 with: toolchain: ${{ matrix.toolchain }} profile: minimal override: true - name: Copy to C drive run: cp D:\a C:\ -Recurse # - name: 🏭 Cache dependencies # uses: Swatinem/rust-cache@v2 - name: Test working-directory: "C:\\a\\webrtc\\webrtc" run: cargo test --features metrics rustfmt_and_clippy: name: Check formatting style and run clippy runs-on: ubuntu-latest steps: - uses: actions/checkout@v3 - uses: actions-rs/toolchain@v1 with: toolchain: stable profile: minimal components: clippy, rustfmt override: true - name: 📦 Cache cargo registry uses: actions/cache@v3 with: path: ~/.cargo/registry key: ${{ runner.os }}-cargo-registry-${{ hashFiles('**/Cargo.lock') }} restore-keys: | ${{ runner.os }}-cargo-registry- - name: 📎 Run clippy uses: actions-rs/cargo@v1 with: command: clippy args: --workspace --all-targets --all-features --all -- -D warnings - name: 💬 Check formatting uses: actions-rs/cargo@v1 with: command: fmt args: --all -- --check minimal_versions: name: Compile and test with minimal versions runs-on: ubuntu-latest steps: - uses: actions/checkout@v3 - name: 🌙 Install latest nightly uses: actions-rs/toolchain@v1 with: toolchain: nightly override: true - uses: taiki-e/install-action@cargo-hack - uses: taiki-e/install-action@cargo-minimal-versions - run: cargo minimal-versions check --workspace --all-features --ignore-private -v - run: cargo minimal-versions build --workspace --all-features --ignore-private -v - run: cargo minimal-versions test --workspace --all-features -v