name: CI
on:
workflow_dispatch:
pull_request:
paths-ignore:
- '.vscode'
- '*.md'
push:
branches:
- main
permissions:
contents: write
pull-requests: write
jobs:
ci_style_check:
name: Code Style Check
runs-on: ubuntu-latest
env:
SCCACHE_GHA_ENABLED: true
RUSTC_WRAPPER: sccache
steps:
- name: Checkout Source
uses: actions/checkout@v4
- name: Rust Setup
uses: dtolnay/rust-toolchain@stable
with:
toolchain: stable
components: clippy, rustfmt
- name: Cache Setup
uses: mozilla-actions/sccache-action@v0.0.5
- name: Format Check
run: cargo fmt -- --check
- name: Clippy Check
run: cargo clippy
ci_test_build:
name: Test Build
needs: ci_style_check
runs-on: ubuntu-latest
env:
SCCACHE_GHA_ENABLED: true
RUSTC_WRAPPER: sccache
steps:
- name: Checkout Source
uses: actions/checkout@v4
- name: Rust Setup
uses: dtolnay/rust-toolchain@stable
with:
toolchain: stable
target: x86_64-unknown-linux-gnu
- name: Cache Setup
uses: mozilla-actions/sccache-action@v0.0.5
- name: Tests Check
run: cargo test --workspace
- name: Dev Build
run: cargo build --locked