name: CI on: push: branches: [main] pull_request: env: CARGO_TERM_COLOR: always jobs: gate: strategy: fail-fast: false matrix: os: [ubuntu-24.04, windows-latest] runs-on: ${{ matrix.os }} steps: - uses: actions/checkout@v4 - uses: dtolnay/rust-toolchain@stable with: # Pinned: the MSRV the workspace declares. toolchain: "1.96" components: rustfmt, clippy - uses: Swatinem/rust-cache@v2 # libmpv for pstr-player. On Windows the DLL and import library are # bundled from the mpv-dev build rather than installed system-wide. - name: Install libmpv (Linux) if: runner.os == 'Linux' run: | sudo apt-get update sudo apt-get install -y libmpv-dev # Without this the test binaries do not link: there is no mpv.lib on the # runner. See .github/actions/libmpv-windows. - name: Install libmpv (Windows) if: runner.os == 'Windows' uses: ./.github/actions/libmpv-windows - run: cargo fmt --all -- --check - run: cargo clippy --workspace --all-targets -- -D warnings - run: cargo test --workspace --locked