name: ci
on:
push:
pull_request:
schedule: [cron: "40 1 * * 0"]
jobs:
build:
name: Build
runs-on: ubuntu-latest
steps:
- name: Setup | Checkout
uses: actions/checkout@v4
- name: Build | Release Mode
run: cargo build --release
unittest:
name: Test
runs-on: ubuntu-latest
steps:
- name: Setup | Checkout
uses: actions/checkout@v4
- name: Test
run: cargo test
env:
RUST_LOG: debug
RUST_BACKTRACE: full
stable:
name: Test on stable
runs-on: ubuntu-latest
steps:
- name: Setup | Checkout
uses: actions/checkout@v4
- name: Setup | Toolchain
run: rustup toolchain install stable --profile minimal
- name: Test
run: cargo +stable test
env:
RUST_LOG: debug
RUST_BACKTRACE: full
msrv:
name: Test MSRV
runs-on: ubuntu-latest
steps:
- name: Setup | Checkout
uses: actions/checkout@v4
- name: Setup | Toolchain
run: rustup toolchain install 1.88.0 --profile minimal
- name: Test
run: cargo +1.88.0 test
env:
RUST_LOG: debug
RUST_BACKTRACE: full
lint:
name: lint
runs-on: ubuntu-latest
steps:
- name: Setup | Checkout
uses: actions/checkout@v4
- name: Setup | Components
run: rustup component add rustfmt clippy
- name: Format
run: cargo fmt --all -- --check
- name: clippy
run: cargo clippy --no-deps --all-targets -- -D warnings
- name: Build-doc
run: cargo doc --all --no-deps
env:
RUSTDOCFLAGS: "-D warnings"
- name: Package
run: cargo package --allow-dirty