Skip to content

mediasoup-rust

mediasoup-rust #4741

name: mediasoup-rust
on: [pull_request, workflow_dispatch]
concurrency:
# Cancel a currently running workflow from the same PR, branch or tag when a
# new workflow is triggered.
group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }}
cancel-in-progress: true
env:
CARGO_TERM_COLOR: always
jobs:
ci:
strategy:
matrix:
ci:
- os: ubuntu-20.04
- os: ubuntu-22.04
- os: ubuntu-24.04
- os: macos-12
- os: macos-14
- os: windows-2022
runs-on: ${{ matrix.ci.os }}
env:
KEEP_BUILD_ARTIFACTS: '1'
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Configure cache
uses: actions/cache@v3
with:
path: |
~/.cargo/registry
~/.cargo/git
key: ${{ matrix.ci.os }}-cargo-${{ hashFiles('**/Cargo.toml') }}
- name: cargo fmt
run: cargo fmt --all -- --check
- name: cargo clippy
run: cargo clippy --all-targets -- -D warnings
# NOTE: In Windows this will build and test libmediasoupworker in release
# mode twice since build.rs doesn't allow debug mode for Windows.
- name: cargo test
run: |
cargo test --verbose
cargo test --release --verbose
- name: cargo doc
run: cargo doc --locked --all --no-deps --lib
env:
DOCS_RS: '1'
RUSTDOCFLAGS: '-D rustdoc::broken-intra-doc-links -D rustdoc::private_intra_doc_links'