Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
30 changes: 15 additions & 15 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -218,6 +218,9 @@ jobs:
with:
tool: protoc

- name: Setup sccache
uses: ./.github/actions/setup-sccache

# `cargo fmt --all --check` and the same `--all-targets` clippy the local
# push gate runs, plus the two boundary guards that otherwise gate nothing.
# The clippy feature set mirrors the test-doc workspace check so the
Expand All @@ -230,6 +233,13 @@ jobs:
# shellcheck disable=SC2086
cargo clippy --workspace --all-targets --locked ${LASH_CI_FEATURES} -- -D warnings

# Functional only: exercise every runtime and Lashlang measurement path
# cheaply on each push/PR. Full budget enforcement belongs to release.yml.
- name: Run performance harness smoke
run: |
python3 scripts/profile_runtime.py --profile quick --out .benchmarks/perf-smoke/runtime.json
python3 scripts/profile_lashlang.py --debug --iterations 10 --profile-iterations 10 --out .benchmarks/perf-smoke/lashlang.json

- name: Check core/UI boundary
run: bash scripts/check-core-ui-boundary.sh

Expand Down Expand Up @@ -258,7 +268,7 @@ jobs:
- shard: fault-matrix
runner: blacksmith-16vcpu-ubuntu-2404
- shard: sim-unit-perf-guards
runner: ubuntu-latest
runner: blacksmith-16vcpu-ubuntu-2404
- shard: sim-generated
runner: blacksmith-16vcpu-ubuntu-2404
- shard: minimizer-fixtures
Expand All @@ -275,22 +285,13 @@ jobs:
uses: dtolnay/rust-toolchain@stable


- name: Restore cargo cache (Blacksmith)
if: matrix.runner != 'ubuntu-latest'
- name: Restore cargo cache
uses: useblacksmith/rust-cache@v3.0.1
with:
cache-bin: false
shared-key: linux-debug
save-if: false

- name: Restore cargo cache (GitHub)
if: matrix.runner == 'ubuntu-latest'
uses: Swatinem/rust-cache@v2
with:
cache-bin: false
shared-key: linux-debug
save-if: false

- name: Install protoc and nextest
uses: taiki-e/install-action@v2
with:
Expand Down Expand Up @@ -504,12 +505,11 @@ jobs:


- name: Restore cargo cache
uses: Swatinem/rust-cache@v2
uses: useblacksmith/rust-cache@v3.0.1
with:
cache-bin: false
# Sole writer of the linux release-profile cache; release.yml's
# x86_64 build restores it (then stamps the release version, so only
# the workspace crates rebuild — the cached deps stay warm).
# perf jobs restore it, so release-profile dependencies stay warm.
shared-key: linux-release

- name: Install protoc
Expand All @@ -526,7 +526,7 @@ jobs:
link-with-mold: "false"

- name: Build release workspace
run: cargo build --locked --release --workspace --target x86_64-unknown-linux-gnu
run: cargo build --locked --release --workspace

- name: Report sccache stats
if: always()
Expand Down
15 changes: 7 additions & 8 deletions .github/workflows/perf.yml
Original file line number Diff line number Diff line change
@@ -1,14 +1,10 @@
name: Performance

# The heavyweight runtime performance checks deliberately do not run per push (see
# ci.yml); this nightly run is the sole enforcement point for the budgets in
# scripts/perf_guard_budgets.json — without it the budget system gates
# nothing.
# The release workflow enforces these full profiles before publishing. This
# workflow keeps the same budget-enforcing check available on demand.

on:
workflow_dispatch:
schedule:
- cron: "17 3 * * *"

concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
Expand All @@ -23,18 +19,21 @@ env:
jobs:
perf-guard-full:
name: Perf Guard Full
runs-on: ubuntu-latest
runs-on: blacksmith-16vcpu-ubuntu-2404

steps:
- name: Check out repository
uses: actions/checkout@v7

- name: Reclaim runner disk
run: bash scripts/ci-reclaim-disk.sh

- name: Install Rust toolchain
uses: dtolnay/rust-toolchain@stable


- name: Restore cargo cache
uses: Swatinem/rust-cache@v2
uses: useblacksmith/rust-cache@v3.0.1
with:
cache-bin: false
# Restore-only against the release cache ci.yml warms on main.
Expand Down
Loading
Loading