Skip to content

fix(ci): stabilize terrarium verification gate #3

fix(ci): stabilize terrarium verification gate

fix(ci): stabilize terrarium verification gate #3

Workflow file for this run

name: CI

Check failure on line 1 in .github/workflows/ci.yml

View workflow run for this annotation

GitHub Actions / .github/workflows/ci.yml

Invalid workflow file

(Line: 21, Col: 25): Unrecognized named-value: 'runner'. Located at position 1 within expression: runner.temp, (Line: 66, Col: 25): Unrecognized named-value: 'runner'. Located at position 1 within expression: runner.temp, (Line: 105, Col: 25): Unrecognized named-value: 'runner'. Located at position 1 within expression: runner.temp
on:
push:
branches: ["**"]
pull_request:
merge_group:
types: [checks_requested]
concurrency:
group: ci-${{ github.workflow }}-${{ github.event.pull_request.number || github.ref_name || github.sha }}
cancel-in-progress: ${{ github.event_name == 'pull_request' }}
jobs:
quality:
name: Quality (macOS)
runs-on: macos-latest
env:
CARGO_TERM_COLOR: always
CARGO_INCREMENTAL: 0
CARGO_TARGET_DIR: ${{ runner.temp }}/cargo-target-quality
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Guard local artifacts
run: ./scripts/check_local_artifacts.sh
- name: Setup Rust
uses: dtolnay/rust-toolchain@stable
with:
components: rustfmt, clippy
- name: Install nextest
uses: taiki-e/install-action@nextest
- name: Format
run: ./scripts/env/with_deterministic_env.sh cargo fmt --all -- --check
- name: Clippy
run: ./scripts/env/with_deterministic_env.sh cargo clippy --workspace --all-targets --no-deps -- -D warnings
- name: Test (nextest)
run: ./scripts/env/with_deterministic_env.sh cargo nextest run --workspace --all-targets --profile release --locked --junit-path .artifacts/nextest-junit.xml
- name: Doctest
run: ./scripts/env/with_deterministic_env.sh cargo test --workspace --doc --locked
- name: Build
run: ./scripts/env/with_deterministic_env.sh cargo build --workspace --all-targets --locked
- name: Upload nextest report
if: always()
uses: actions/upload-artifact@v4
with:
name: nextest-junit
path: .artifacts/nextest-junit.xml
if-no-files-found: ignore
supply_chain:
name: Supply Chain (deny + audit)
runs-on: ubuntu-latest
env:
CARGO_TERM_COLOR: always
CARGO_INCREMENTAL: 0
CARGO_TARGET_DIR: ${{ runner.temp }}/cargo-target-supply-chain
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Guard local artifacts
run: ./scripts/check_local_artifacts.sh
- name: Setup Rust
uses: dtolnay/rust-toolchain@stable
- name: Install cargo-deny
uses: taiki-e/install-action@cargo-deny
- name: Install cargo-audit
uses: taiki-e/install-action@cargo-audit
- name: Dependency review
if: github.event_name == 'pull_request'
uses: actions/dependency-review-action@v4
with:
fail-on-severity: high
- name: cargo deny
run: ./scripts/env/with_deterministic_env.sh cargo deny check --config deny.toml advisories bans licenses sources
- name: cargo audit
run: ./scripts/env/with_deterministic_env.sh cargo audit --deny warnings
non_macos_compile:
name: Non-macOS Compile Check
strategy:
fail-fast: false
matrix:
os: [ubuntu-latest, windows-latest]
runs-on: ${{ matrix.os }}
env:
CARGO_TERM_COLOR: always
CARGO_INCREMENTAL: 0
CARGO_TARGET_DIR: ${{ runner.temp }}/cargo-target-compile
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Guard local artifacts
shell: bash
run: ./scripts/check_local_artifacts.sh
- name: Install Linux native build deps
if: matrix.os == 'ubuntu-latest'
run: |
sudo apt-get update
sudo apt-get install -y pkg-config libwayland-dev libxkbcommon-dev libudev-dev libasound2-dev
- name: Setup Rust
uses: dtolnay/rust-toolchain@stable
- name: Native compile check
shell: bash
run: ./scripts/env/with_deterministic_env.sh cargo check --workspace --all-targets --locked