yuqi1129 opened a new pull request, #14192:
URL: https://github.com/apache/gravitino/pull/14192

   ### What changes were proposed in this pull request?
   
   Publish Fork CI and ASF Allowlist Check verdicts as commit statuses with 
direct run links, while retaining custom checks for immutable run/attempt 
metadata. Backfill a missing status even when its metadata check is unchanged, 
and retry failed status writes on later sweeps.
   
   Serialize each publisher with a shared `queue: max` concurrency group. 
Replace the eleven-minute polling loop with one bounded sweep so queued PR 
signals can proceed promptly. Distinguish workflows waiting for runners from 
workflows whose jobs have started.
   
   ### Why are the changes needed?
   
   On #13506, a running Fork CI check existed when queried by name with 
`filter=all`, but was omitted from the default check listing and PR rollup. On 
#14190, an already-successful allowlist scan did not satisfy the expected 
context until its result was published as a commit status.
   
   Status writes are append-only. Signals and sweeps must be serialized to 
prevent an older publisher from appending success after a newer failed attempt. 
GitHub queues up to 100 runs per concurrency group and cancels excess runs; 
Fork CI sweeps recover missed signals, while committers can manually refresh 
either publisher. GitHub runner availability and schedule delays still 
determine update latency. During rollout, drain or cancel publisher runs 
created before this change: those runs retain their old concurrency and 
permission configuration even though checkout reads the current default-branch 
scripts.
   
   ### Does this PR introduce _any_ user-facing change?
   
   PRs show pending, success, failure or error statuses with links to the 
actual CI runs. Pending descriptions distinguish queued and running CI. 
Application APIs are unchanged.
   
   ### How was this patch tested?
   
   - `node --test .github/scripts/tests/*.test.cjs`: 53 passing tests, 
including status lifecycle, stale head/retarget/attempt guards, missing-status 
repair, retry, deduplication, allowlist verdicts and serialized short sweeps.
   - Three mutations were rejected: disabling status writes, ignoring running 
child jobs, and restoring separate publisher groups/removing queued signals.
   - Changed YAML passes actionlint 1.7.12 with only its unsupported 
`concurrency.queue` diagnostic excluded. The new field was independently 
checked against GitHub's documented schema and parsed YAML.
   - Read-only replay against #13506's actual fork metadata produced the 
correct pending status and run link; that status was published and appeared in 
the PR rollup. The new workflow configuration has not yet been deployed or 
tested in GitHub Actions.
   


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to