on:
push:
branches:
- 'main'
tags:
- 'v[0-9]+.[0-9]+.[0-9]+'
pull_request:
branches:
- 'main'
name: CI
concurrency:
group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.sha }}
cancel-in-progress: true
env:
CARGO_TERM_COLOR: always
jobs:
test:
name: test everything
runs-on: ${{ matrix.os }}
strategy:
matrix:
os:
- ubuntu-latest
- macos-latest
steps:
- uses: actions/checkout@v3
- uses: actions-rust-lang/setup-rust-toolchain@v1
- uses: rui314/setup-mold@v1
if: runner.os == 'linux'
- name: Install ffmpeg
if: runner.os == 'Windows'
run: winget install Gyan.FFmpeg --accept-package-agreements --accept-source-agreements
- name: Refresh env variables (Windows)
if: runner.os == 'Windows'
run: refreshenv
- name: Install ffmpeg
if: runner.os == 'linux'
run: sudo apt-get install ffmpeg
- name: Install ffmpeg
if: runner.os == 'macOS'
run: brew install ffmpeg
- name: Install cargo-nextest
run: cargo install cargo-nextest --locked
- name: Build
run: cargo build --verbose
- name: Check without default features
run: cargo check --no-default-features
- name: Run tests
run: cargo nextest run --all-targets --all-features --examples --verbose