Skip to content

ci

ci #145

Workflow file for this run

name: ci
on:
pull_request:
branches:
- develop
- main
- master
push:
branches:
- develop
- main
- master
schedule:
- cron: "0 9 * * *"
env:
RUST_BACKTRACE: full
NO_COLOR: 1
jobs:
test:
name: Test Rust ${{ matrix.rust }} on ${{ matrix.os }}
runs-on: ${{ matrix.os }}
continue-on-error: ${{ matrix.experimental }}
strategy:
fail-fast: false
matrix:
include:
- { rust: stable, os: ubuntu-latest, experimental: false }
- { rust: stable, os: macos-latest, experimental: false }
- { rust: stable, os: windows-latest, experimental: false }
- { rust: stable-i686-msvc, os: windows-latest, experimental: false }
- { rust: beta, os: ubuntu-latest, experimental: true }
- { rust: nightly, os: ubuntu-latest, experimental: true }
steps:
- uses: actions/checkout@v4
- uses: hecrj/setup-rust-action@v2
with:
rust-version: ${{ matrix.rust }}
- run: cargo build --verbose --all
- run: cargo build --release
- run: cargo test -- --test-threads=1
- run: cargo install hyperfine
- run: target/release/mpn tests/files/test-bokeh-au-2t-vd-30f-854x480.mp4
- run: hyperfine -i --warmup 20 "target/release/mpn tests/files/test-bokeh-au-2t-vd-30f-854x480.mp4"
clippy:
name: Lint with clippy
runs-on: ubuntu-latest
env:
RUSTFLAGS: -Dwarnings
steps:
- uses: actions/checkout@v4
- uses: hecrj/setup-rust-action@v2
with:
components: clippy
- run: cargo clippy --workspace --all-targets --verbose
- run: cargo clippy --workspace --all-targets --verbose --no-default-features
- run: cargo clippy --workspace --all-targets --verbose --all-features
rustfmt:
name: Verify code formatting
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: hecrj/setup-rust-action@v2
with:
components: rustfmt
- run: cargo fmt --all -- --check
codespell:
name: Verify code spelling
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- run: |
pip install codespell
codespell -L crate src/*.rs *.md tests/*.rs *.toml
markdownlint:
name: Lint markdown
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- run: |
npm install markdownlint-cli2 --global
markdownlint-cli2 --config .markdownlint.json *.md