ReviewOS

craft-native/craft

Preserve release-specific mobile acceptance while newer main pushes queue

#436
Closed chris opened this 14 hours ago ·
14 hours ago

Craft's release gate requires Mobile E2E Testing from the exact release SHA, but mobile-e2e.yml puts release commits and ordinary main pushes in the same concurrency group. A newer push can replace the pending release run even though cancel-in-progress is false. Main CI already isolates release SHAs in commit 16169be3; the required mobile workflow does not.

Observed at source 806d3d52ec876dccc441bee70b2d922ebbf1a072: release 0.0.421's Mobile run 41393707644 is pending behind source-fix run 41392462905. We are preserving those runs, holding newer source pushes, and have not canceled or bypassed either gate. This is a reproducible queue-policy defect, not a claim that this mobile run has already been canceled.

The maintained workflow expression test should demonstrate that the release SHA's group currently equals an ordinary main push's group. GitHub documents replacement of the existing pending run in a shared single-slot group: https://docs.github.com/en/actions/how-tos/write-workflows/choose-when-workflows-run/control-workflow-concurrency

Acceptance:

  • Give each release commit a mobile acceptance group that later main pushes and other release SHAs cannot replace.
  • Preserve ordinary main queue behavior, pull request supersession, focused-scope separation, and the complete exact-SHA release gate.
  • Reuse the established CI release-commit recognition policy and existing workflow expression tests. Do not add dispatch retries, bypass native gates, broaden focused checks into release acceptance, or change runner/test budgets.
  • Verify source workflow tests, lint, and the actual required native gate on a subsequent release. Retain the original pending 0.0.421 acceptance evidence separately.

Related owning-source work: https://github.com/craft-native/craft/issues/434 and https://github.com/craft-native/craft/issues/435 . Delivery tracking: https://github.com/stacksjs/the-settlers-iii-remake/issues/15 and https://github.com/stacksjs/stacks/issues/2958 .

14 hours ago

Pushed c93d348697817d6881a3cd627af8598a6c4c987a as Chris without coauthors, together with the reviewed native source at fd55fd116d709de4cf894a7becd1dd01bb0a0e92.

The maintained expression regression first failed because a release commit and a later ordinary main push both used mobile-e2e-refs/heads/main-all. Each release SHA now retains its own group using the same release-message recognition as Main CI. Ordinary main consolidation, PR cancellation, focused scopes and exact-SHA full release gates remain intact. All 54 workflow tests passed with 1,062 assertions, followed by independent review.

The already-instantiated 0.0.421 run retained its original configuration. The source push was held until its exact-SHA physical jobs were demonstrably running, preserving that run. No dispatch, cancellation or gate bypass was used. Future release execution remains required before closing this issue.

14 hours ago

Verified the workflow correction in source and in subsequent real release execution. Closing this narrow concurrency defect; native qualification and package publication remain separate open work.

Implementation c93d348697817d6881a3cd627af8598a6c4c987a passed the maintained red/green expression regression, all 54 workflow tests (1,062 assertions), lint and independent review. Ordinary main consolidation, PR cancellation and focused scopes remain unchanged; release SHAs receive independent groups.

Actual proof: 0.0.422 Mobile 41401743154 on exact 9120ef0ca312b09a8104aada75abe785deca385a started a real job at 06:44:08 UTC while three legacy 0.0.421 main/all jobs were still running (they completed at 06:50:09, 06:57:55 and 06:59:56). The recorded workflow groups are mobile-e2e-refs/heads/main-all for the legacy run and mobile-e2e-9120ef0ca312b09a8104aada75abe785deca385a-all for 0.0.422.

The full required Android Vulkan job then failed at 06:53:47 for the independently retained headless identity-probe defect. The exact native release gate failed at 06:54:25 and identified that exact run and SHA. The acceptance run was retained and its failure blocked publication as intended. There was no dispatch retry, cancellation, focused-suite substitution, budget change or bypass.

The subsequent 0.0.423 release also has its own exact-SHA Mobile run 41406346696, with real native jobs running while older work remains. This confirms the queue policy, not successful native execution or publication. #435, #438, #439 and the broader delivery epic retain their own completion gates.

Sign in to comment on this issue.