Retry Warp display regression once before failing CI

Closed
LA
1mo ago
+2139-799

Summary

  • retry the WarpBuild display-resolution regression once before failing CI
  • keep the final check name as ui-display-resolution-regression so branch protection stays stable
  • preserve the existing WarpBuild runner guard while hardening against runner shutdown during checkout

Testing

  • ./tests/test_ci_self_hosted_guard.sh
  • `ruby -e 'require "yaml"; YAML.load_file(".github/workflows/ci.yml"); puts "YAML OK"'

Context


Summary by cubic

Retries the Warp display/lag regressions, all 6 cmux-unit shards, build-ghosttykit, and macOS compatibility checks once with deterministic cancellation-only gating and hosted aggregation. Caps shard hangs to 10 minutes per attempt, restores and stabilizes macOS 15/26 compat, and hardens Zig/GhosttyKit reuse across CI.

  • Bug Fixes

    • Deterministic retry now covers display, lag, unit shards, build-ghosttykit, and macOS compat: attempt 2 runs only if attempt 1 never reached real work (test_started/build_started) or never completed. Hosted aggregators on ubuntu-latest require explicit completed/passed.
    • Stabilized compat on macOS 15 and 26 (skip Zig on 26) with optional virtual-display smoke. Budgets: UI 25m, lag 20m, compat 45m, shards 10m/attempt, aggregators 5m.
    • Hardened tool/cache reuse: pinned Xcode; Zig via scripts/install-zig.sh (lib_dir check); cached/prebuilt GhosttyKit.xcframework keyed to the ghostty submodule; SPM resolve retry. Fixed GhosttyKit checksum guard across composite actions.
    • Added guard tests for retry output gating, shard timeouts, and the macOS compat slice; tightened self‑hosted runner guards.
  • Refactors

    • Extracted composite actions: ./.github/actions/run-display-resolution-regression, ./.github/actions/run-lag-regression, ./.github/actions/run-unit-test-shard, ./.github/actions/run-macos-compat-check that emit test_started/completed/passed.
    • Sharded unit tests into 6 Warp shards with a hosted aggregator; split build-ghosttykit and macOS compat into attempt‑1/attempt‑2 and verify via scripts/verify_retry_result.sh. Unified Zig install and GhosttyKit cache keys.

Summary by CodeRabbit

  • Chores
    • Improved CI resilience by running two parallel attempts for build/lag and UI-resolution regression, emitting test_started/passed outputs and aggregating results so the overall job succeeds if either attempt passes.
    • Added reusable regression run actions to streamline per-attempt orchestration, reporting, and failure-handling.
  • Tests
    • Updated test guards and scripts to recognize attempt wrappers and emit clearer pass/fail messages for each attempt.