Skip to content

refactor(macros): simplify internal layout and harden transition returns #91

refactor(macros): simplify internal layout and harden transition returns

refactor(macros): simplify internal layout and harden transition returns #91

Workflow file for this run

name: ci
on:
push:
branches: [main]
pull_request:
workflow_dispatch:
concurrency:
group: ci-${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }}
cancel-in-progress: true
env:
MODUM_VERSION: 0.3.7
jobs:
stable:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: dtolnay/rust-toolchain@stable
with:
components: rustfmt, clippy
- name: Cache cargo
uses: actions/cache@v4
with:
path: |
~/.cargo/registry
~/.cargo/git
target
key: ${{ runner.os }}-cargo-stable-${{ hashFiles('**/Cargo.toml', 'rust-toolchain.toml') }}
restore-keys: |
${{ runner.os }}-cargo-stable-
- name: Cache modum
uses: actions/cache@v4
with:
path: |
~/.cargo/bin/cargo-modum
~/.cargo/bin/modum
~/.cargo/.crates.toml
~/.cargo/.crates2.json
key: ${{ runner.os }}-modum-${{ env.MODUM_VERSION }}
- name: Install modum
run: command -v modum >/dev/null 2>&1 || cargo install modum --locked --version "$MODUM_VERSION"
- name: Modum
run: cargo modum check --root . --mode warn
- name: Format check
run: cargo fmt --all --check
- name: Docs link check
run: bash scripts/check_readme_links.sh
- name: Clippy
run: cargo clippy --workspace --all-targets --all-features -- -D warnings
- name: Test
run: cargo test --workspace --all-features
- name: Workspace hygiene
run: bash scripts/check_workspace_hygiene.sh
- name: Build docs
run: RUSTDOCFLAGS="-D warnings" cargo doc --workspace --all-features --no-deps
cross-platform-tests:
strategy:
fail-fast: false
matrix:
os: [macos-latest, windows-latest]
runs-on: ${{ matrix.os }}
steps:
- uses: actions/checkout@v4
- uses: dtolnay/rust-toolchain@stable
- name: Test all features
run: cargo test --workspace --all-features
msrv-1-93:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: dtolnay/rust-toolchain@1.93.1
- name: Cache cargo
uses: actions/cache@v4
with:
path: |
~/.cargo/registry
~/.cargo/git
target
key: ${{ runner.os }}-cargo-1-93-${{ hashFiles('**/Cargo.toml', 'rust-toolchain.toml') }}
restore-keys: |
${{ runner.os }}-cargo-1-93-
- name: Test
run: cargo test --workspace --all-features
security-deny:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: dtolnay/rust-toolchain@1.93.1
- uses: taiki-e/install-action@cargo-deny
- name: cargo-deny
run: cargo deny check advisories bans sources
security-audit:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: dtolnay/rust-toolchain@1.93.1
- uses: taiki-e/install-action@cargo-audit
- name: cargo-audit
run: cargo audit -d /tmp/advisory-db
publish-dry-run:
if: github.event_name == 'workflow_dispatch' || startsWith(github.ref, 'refs/tags/')
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: dtolnay/rust-toolchain@1.93.1
- name: Publish readiness (ordered)
run: bash scripts/check_publish_dry_run.sh
nightly-canary:
continue-on-error: true
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: dtolnay/rust-toolchain@nightly
- name: Nightly build
run: cargo build --workspace