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
6 changes: 5 additions & 1 deletion .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -339,6 +339,7 @@ jobs:
with: { gate: coverage-model }

- name: Run coverage
id: run-coverage
env:
OUTPUT_ECONOMY_BASE: ${{ github.event_name == 'pull_request' && github.event.pull_request.base.sha || github.event.before }}
uses: ./.github/actions/run-gate
Expand All @@ -355,8 +356,11 @@ jobs:
# and fails when changed-line coverage < the threshold in
# scripts/coverage-changed/model.ts. The `coverage-waiver` PR label maps to
# the waiver env, which skips the failure but still prints the numbers.
# Gated on the coverage step's own outcome (#1781 A5): when `Run coverage`
# fails, lcov.info is never written, so this step would just re-report that
# failure as its own red ("no lcov report") instead of a coverage verdict.
- name: Enforce changed-line coverage gate
if: always() && github.event_name == 'pull_request'
if: steps.run-coverage.outcome == 'success' && github.event_name == 'pull_request'
env:
AGENT_DEVICE_COVERAGE_WAIVER: ${{ contains(github.event.pull_request.labels.*.name, 'coverage-waiver') }}
uses: ./.github/actions/run-gate
Expand Down
12 changes: 5 additions & 7 deletions .github/workflows/perf-nightly.yml
Original file line number Diff line number Diff line change
@@ -1,14 +1,12 @@
name: Perf Nightly

# End-to-end command perf benchmark (scripts/perf). Scheduled + manual only — perf timing on
# shared CI runners is noisy, so treat this as a trend/regression signal, not absolute numbers.
# Reuses the same build artifacts as the device suites: the cached iOS XCUITest runner
# (setup-apple-runner-build, ios-runner-prebuilt cache) and the Android replay host, and runs the CLI
# from source via --experimental-strip-types (no dist build), matching the replay workflows.
# Parked to workflow_dispatch by #1781 A3: it only writes a report and compares nothing, so it
# structurally cannot catch a regression, and iOS wall-clock medians swing up to +122%
# night-to-night at n=5 with no consumer reading the report. `pnpm perf` / scripts/perf are
# unaffected — still runnable on demand. Un-park once a comparison step with multi-night
# smoothing (someone reading it) exists, or a perf arc needs nightly data.

on:
schedule:
- cron: '0 4 * * *'
workflow_dispatch:
inputs:
rounds:
Expand Down
Loading