Skip to content

CI

CI #11

Workflow file for this run

name: CI
on:
workflow_dispatch:
merge_group:
pull_request:
paths-ignore:
- "img/**"
- "**.md"
- LICENSE-APACHE
- LICENSE-MIT
- .gitignore
push:
branches: [ main ]
paths-ignore:
- "img/**"
- "**.md"
- LICENSE-APACHE
- LICENSE-MIT
- .gitignore
env:
CARGO_TERM_COLOR: always
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
jobs:
build:
name: cargo build
runs-on: ubuntu-latest
strategy:
matrix:
rust: [ stable, beta, nightly ]
steps:
- name: Checkout sources
uses: actions/checkout@v4
- name: Install toolchain
uses: dtolnay/rust-toolchain@master
with:
toolchain: ${{ matrix.rust }}
- name: Default features
run: cargo build --all-targets
- name: Nightly features
if: matrix.rust == 'nightly'
run: cargo build --all-targets -F "nightly try_fold is_empty"
clippy:
name: cargo clippy
runs-on: ubuntu-latest
strategy:
matrix:
rust: [ stable, beta, nightly ]
env:
RUSTFLAGS: -Dwarnings
steps:
- uses: actions/checkout@v4
- uses: dtolnay/rust-toolchain@master
with:
toolchain: ${{ matrix.rust }}
components: clippy
- run: cargo clippy --all-targets
- if: matrix.rust == 'nightly'
run: cargo clippy --all-targets --all-features
fmt:
name: cargo fmt
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: dtolnay/rust-toolchain@stable
with:
components: rustfmt
- run: cargo fmt --all -- --check
doc:
name: cargo rustdoc
runs-on: ubuntu-latest
env:
RUSTDOCFLAGS: -Dwarnings
steps:
- uses: actions/checkout@v4
- uses: dtolnay/rust-toolchain@nightly
- uses: dtolnay/install@cargo-docs-rs
- run: cargo docs-rs
test:
name: cargo test
runs-on: ubuntu-latest
strategy:
matrix:
rust: [ stable, beta, nightly ]
steps:
- name: Checkout sources
uses: actions/checkout@v4
- name: Install toolchain
uses: dtolnay/rust-toolchain@master
with:
toolchain: ${{ matrix.rust }}
- name: Default features
run: cargo test --no-fail-fast -- --skip proptest
- name: Nightly features
if: matrix.rust == 'nightly'
run: cargo test --no-fail-fast -F "nightly try_fold is_empty" -- --skip proptest
proptest:
name: proptest
runs-on: ubuntu-latest
steps:
- name: Checkout sources
uses: actions/checkout@v4
- name: Install toolchain
uses: dtolnay/rust-toolchain@stable
- name: Default features
run: cargo test --no-fail-fast proptest