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]
