Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
17 commits
Select commit Hold shift + click to select a range
08cba00
WIP: C1 Phase-1 baseline — land tier3_baseline.json on main (blocks g…
briansrls May 11, 2026
eca3258
ci: Tier-3 baseline capture workflow + aggregate helper
briansrls May 11, 2026
391abce
WIP: C1 Phase-1 baseline — land tier3_baseline.json on main (blocks g…
briansrls May 11, 2026
d27dcbb
feat: commit R-7 tier3_baseline.json + clarify Phase-1 gate vs re-cap…
briansrls May 11, 2026
9ec8589
ci: discover tier3 capture bundles dynamically in aggregate step
briansrls May 11, 2026
7fc20da
WIP: C1 Phase-1 baseline — land tier3_baseline.json on main (blocks g…
briansrls May 11, 2026
708c1ed
WIP: C1 Phase-1 baseline — land tier3_baseline.json on main (blocks g…
briansrls May 11, 2026
32f741d
docs: fix capture-procedure §5.1 miscitation (bootstrap recapture)
briansrls May 11, 2026
2d7b4af
docs: clarify aggregate --host-id is caller-supplied truthful label
briansrls May 11, 2026
8ccb70f
docs: split R-7 presence vs canonical Ubicloud coherence (codex blocker)
briansrls May 11, 2026
dd5a7bc
fix: fail-closed criterion_version_from_lock (no silent 0.5 fallback)
briansrls May 11, 2026
7c91c5b
docs: describe bootstrap vs matrix capture in tier3 aggregate helper
briansrls May 11, 2026
d84a792
docs(audit): drop stale HEAD pin in Tier-3 baseline procedure §3–§5
briansrls May 11, 2026
c05e4f5
docs(audit): align readiness matrix §1–§5 with criterion + R-3 design…
briansrls May 11, 2026
8533cfb
docs(audit): clarify captured_at is JSON finalization receipt
briansrls May 12, 2026
2ea3e81
docs(audit): reconcile R-4 PerfWithinBaseline readiness with substrat…
briansrls May 12, 2026
1161c03
Merge branch 'main' into session/proud-hawk-307
briansrls May 12, 2026
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
99 changes: 99 additions & 0 deletions .github/workflows/tier3-baseline-capture.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,99 @@
# Manual C1 Phase-1 Tier-3 mirror baseline capture (``tier3_baseline.json``).
#
# Dispatched on `ubicloud-standard-2` (R-3 per ``docs/audit/c1-r3-canonical-bench-host-decision-matrix.md``).
# Runs five independent bench jobs (separate VMs), aggregates per procedure §2 / R-7 via
# ``scripts/aggregate_tier3_baseline.py``.
#
# **Phase-1 gate (R-7):** the canonical baseline lives in the repo tree at
# ``src/v3/compiler/benches/tier3_baseline.json`` (merged on ``main`` before mirror dissolution PRs).
# This workflow does **not** replace that file: it is a **recapture / audit** path for
# Director-approved baseline refresh or for comparing fresh Criterion output against the
# committed baseline (diff the artifact vs the checked-in JSON; land updates only via normal PR).
#
# Once this YAML exists on ``main``, operators may ``gh workflow run tier3-baseline-capture.yml``,
# then review or diff the emitted ``tier3_baseline.json`` artifact.

name: Tier-3 baseline capture

on:
workflow_dispatch:

permissions:
contents: read

concurrency:
group: tier3-baseline-capture-${{ github.repository }}
cancel-in-progress: false

jobs:
capture-run:
strategy:
fail-fast: false
matrix:
run_number: [1, 2, 3, 4, 5]
runs-on: ubicloud-standard-2
timeout-minutes: 60
steps:
- name: Checkout
uses: actions/checkout@v4

- name: Setup Rust
uses: actions-rust-lang/setup-rust-toolchain@v1.16.0
with:
cache: true
rustflags: ""

- name: Run tier3 mirror benchmarks
run: cargo bench --bench tier3_mirror_perf -p v3-compiler

- name: Stage capture bundle (criterion + rustc provenance)
run: |
mkdir -p staging
cp -a target/criterion staging/criterion
rustc --version | tee staging/rustc_version.txt

- name: Upload capture bundle
uses: actions/upload-artifact@v4
with:
name: tier3-criterion-${{ matrix.run_number }}
path: staging

aggregate:
needs: capture-run
runs-on: ubicloud-standard-2
timeout-minutes: 15
steps:
- name: Checkout
uses: actions/checkout@v4

- name: Download criterion artifacts
uses: actions/download-artifact@v4
with:
pattern: tier3-criterion-*
path: runs
merge-multiple: false

- name: Aggregate into tier3_baseline.json
run: |
set -euxo pipefail
# Artifact-only aggregate (compare vs src/v3/compiler/benches/tier3_baseline.json in-tree).
# Each matrix job uploaded `staging/` with `criterion/` + rustc_version.txt
shopt -s nullglob
bundles=(runs/tier3-criterion-*)
if [ "${#bundles[@]}" -lt 3 ]; then
echo "::error::expected ≥3 capture bundles under runs/tier3-criterion-*, got ${#bundles[@]}"
ls -la runs || true
exit 1
fi
mapfile -t sorted < <(printf '%s\n' "${bundles[@]}" | sort -V)
python3 scripts/aggregate_tier3_baseline.py \
--host-id ubicloud-standard-2 \
--git-sha "${GITHUB_SHA}" \
--output tier3_baseline.json \
"${sorted[@]}"

- name: Upload baseline JSON
uses: actions/upload-artifact@v4
with:
name: tier3-baseline-json
path: tier3_baseline.json
Loading
Loading