name: Check
on:
push:
branches:
- main
pull_request:
permissions:
contents: read
jobs:
format:
name: Format
runs-on: ubuntu-latest
steps:
- name: Checkout repository
uses: actions/checkout@v6
- name: Install Rust toolchain
uses: dtolnay/rust-toolchain@nightly
with:
components: rustfmt
- name: Cache Rust build artifacts
uses: Swatinem/rust-cache@v2
- name: Run format check
run: cargo fmt --all -- --check
clippy:
name: Clippy
runs-on: ubuntu-latest
steps:
- name: Checkout repository
uses: actions/checkout@v6
- name: Install Rust toolchain
uses: dtolnay/rust-toolchain@stable
- name: Cache Rust build artifacts
uses: Swatinem/rust-cache@v2
- name: Run clippy
run: cargo clippy --all-targets --all-features --workspace -- -D warnings
targets:
name: Check Targets
runs-on: ubuntu-latest
steps:
- name: Checkout repository
uses: actions/checkout@v6
- name: Install Rust toolchain
uses: dtolnay/rust-toolchain@stable
- name: Cache Rust build artifacts
uses: Swatinem/rust-cache@v2
- name: Check all workspace targets
run: cargo check --all-targets --all-features --workspace
docs:
name: Docs
runs-on: ubuntu-latest
steps:
- name: Checkout repository
uses: actions/checkout@v6
- name: Install Rust toolchain
uses: dtolnay/rust-toolchain@nightly
- name: Cache Rust build artifacts
uses: Swatinem/rust-cache@v2
- name: Build docs
run: cargo doc --all-features --workspace
msrv:
name: MSRV
runs-on: ubuntu-latest
steps:
- name: Checkout repository
uses: actions/checkout@v6
- name: Install Rust toolchain
uses: dtolnay/rust-toolchain@1.88.0
- name: Cache Rust build artifacts
uses: Swatinem/rust-cache@v2
- name: Check workspace on MSRV
run: cargo check --all-features --workspace
readme:
name: Readme
runs-on: ubuntu-latest
steps:
- name: Checkout repository
uses: actions/checkout@v6
with:
fetch-depth: 0
- name: Install Rust toolchain
uses: dtolnay/rust-toolchain@stable
- name: Install cargo-binstall
uses: taiki-e/install-action@v2
with:
tool: cargo-binstall
- name: Install cargo-rdme
run: |
# normally we use https://github.com/taiki-e/install-action, but cargo-rdme 1.5.0
# does not publish macOS binaries, so install-action blocks it
cargo binstall --no-confirm cargo-rdme@1.5.0
- name: Check READMEs
run: |
set -euo pipefail
set -x
cargo rdme --check --manifest-path Cargo.toml
cargo rdme --check --manifest-path tui-bar-graph/Cargo.toml
cargo rdme --check --manifest-path tui-big-text/Cargo.toml
cargo rdme --check --manifest-path tui-cards/Cargo.toml
cargo rdme --check --manifest-path tui-popup/Cargo.toml
cargo rdme --check --manifest-path tui-qrcode/Cargo.toml
cargo rdme --check --manifest-path tui-scrollbar/Cargo.toml
cargo rdme --check --manifest-path tui-scrollview/Cargo.toml