name: CI
on: [push, pull_request]
env:
CARGO_TERM_COLOR: always
jobs:
build:
runs-on: ${{ matrix.os }}
strategy:
matrix:
os: [ubuntu-latest, macos-latest, windows-latest]
steps:
- uses: actions/checkout@v6
- uses: actions-rs/toolchain@v1
with:
profile: minimal
toolchain: stable
- run: cargo build --verbose --all-features
test:
runs-on: ${{ matrix.os }}
strategy:
matrix:
os: [ubuntu-latest, macos-latest, windows-latest]
steps:
- uses: actions/checkout@v6
- uses: actions-rs/toolchain@v1
with:
profile: minimal
toolchain: stable
- name: Install ffmpeg (Linux)
if: runner.os == 'Linux'
run: |
sudo apt update
sudo apt install ffmpeg
- name: Install ffmpeg (macOS)
if: runner.os == 'macOS'
run: |
brew install ffmpeg-full
echo "$(brew --prefix ffmpeg-full)/bin" >> "$GITHUB_PATH"
- name: Install ffmpeg (Windows)
if: runner.os == 'Windows'
run: choco install ffmpeg
- run: cargo test --verbose --all-features
clippy:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v6
- uses: actions-rs/toolchain@v1
with:
profile: minimal
toolchain: stable
components: clippy
- run: cargo clippy --all-targets -- -D warnings
fmt:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v6
- uses: actions-rs/toolchain@v1
with:
profile: minimal
toolchain: stable
components: rustfmt
- run: cargo fmt --all -- --check
msrv:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v6
- uses: taiki-e/install-action@v2
with:
tool: cargo-msrv
- run: cargo msrv verify