Skip to content

ci(desktop): retry failed macos desktop jobs once - #524

Merged
kinqsradio merged 2 commits into
mainfrom
ci/macos-runner-limits
Nov 12, 2026
Merged

kinqsradio merged 2 commits into
mainfrom
ci/macos-runner-limits

Conversation

@kinqsradio

@kinqsradio kinqsradio commented Nov 12, 2026 •

Copy link
Copy Markdown
Member

Summary

  • Desktop cache warm (macos-15) and Unsigned desktop build (macos-15) get timeout-minutes: 45 (the Windows legs of the same matrix too), so a job that starts and hangs stops after 45 minutes instead of 360.
  • New ci-retry.yml: when a CI run ends in failure on attempt 1 and one of those two macOS jobs failed, it runs gh run rerun --failed once. A pull request that has moved to a newer head is not retried.
  • release.yml header now points to docs/releasing.md. The ci: ad-hoc sign the macOS bundle and verify its seal #516 release items (whole-bundle ad-hoc signing, codesign --verify, honest comment, Windows "signs nothing") were checked and are correct.

Does not cover: timeout-minutes does not count queue time. A job waiting for a macOS runner that never comes never starts, so neither the limit nor the retry fires, and the run only ends when something else ends it. This PR does not fix the outage hang.

Also: the retry fires on any macOS desktop failure, a real compile error included, and --failed reruns every failed job of the run; a flaky job can be hidden by one green rerun. A push or nightly run is retried at its own commit even if main has moved on. A fork pull request, which has no pull request number in the payload, is skipped.

Not verified: no Actions run; YAML parses, actionlint not installed. Whether a timed-out job reports failure (the retry only matches failure), and workflow_run only runs from the default branch, so the retry is live after merge.

Proposal only (not built): an ubuntu watchdog job that polls the run's jobs and cancels it when a macOS job is still queued after N minutes, plus extending the retry to cancelled runs.

Closes #

Parity rows

none

Frames built

Frames built: none

Testing

  • CI covers the rest.
  • Not tested: the retry and the timeout, which only run on GitHub.

Co-authors

none

AI usage

  • Written by hand, with no AI
  • Harness and version: Claude Code
  • Models: claude-sonnet-5-5 (all)
  • Effort: medium
  • Human role: assigned the task and its boundaries; review pending
  • Sources: none

Checklist

  • Works on Windows and macOS
  • web/src/generated with any contract change; docs/architecture.md with any rule change
  • No copied source, secrets, credentials or personal data; no AI attribution in commits, title or branch

Add a 45 minute running-time limit and one automatic rerun for the two macOS desktop jobs. Queue time is not bounded.
@github-actions github-actions Bot added the area: ci CI, release and repository settings label Nov 12, 2026
@kinqsradio
kinqsradio merged commit 3d99693 into main Nov 12, 2026
44 checks passed
@kinqsradio
kinqsradio deleted the ci/macos-runner-limits branch November 12, 2026 12:26
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

area: ci CI, release and repository settings

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant