yuqi1129 opened a new pull request, #14152: URL: https://github.com/apache/gravitino/pull/14152
### What changes were proposed in this pull request? - `fork-ci.yml`: add a `Stop on first failure` job that polls the run's jobs once a minute, logs progress (`19/28 jobs completed, 1 failed; waiting for ...`), and cancels the run as soon as any job fails or times out. It is the only job with `actions: write`, runs only trusted script code (no PR build or tests), and uses `ubuntu-latest` because `ubuntu-slim` stops jobs after 15 minutes. - `fork-ci-status.cjs`: a run that ended because a job failed is reported as `failure` with the failed job in the check title (e.g. `Failed: backend / BackendIT ...`), instead of `cancelled`. - `update-fork-ci.cjs`: scale the scheduled sweep budget with the hourly quota (`limit / 24`, at least 60 calls), so one sweep on apache/gravitino covers all recently updated PRs. - CONTRIBUTING: describe the new re-run behavior. ### Why are the changes needed? GitHub only allows "Re-run failed jobs" after the whole run completes, and Fork CI runs all suites in one run, so a single early failure meant waiting about two hours for the slowest suite before retrying. The PR check also stayed "in progress" for that time. With 60 calls per sweep, a finished fork run could take 30+ minutes to appear on apache PRs. Fix: #14151 ### Does this PR introduce _any_ user-facing change? Contributors: one failed job now stops the rest of the Fork CI run; "Re-run failed jobs" is available immediately and also re-runs the jobs that were stopped. ### How was this patch tested? - 38 Node tests in `.github/scripts/tests/fork-ci.test.cjs` (new: cancel on first failure, watcher ignores itself and exits after all jobs complete, failure title, single `actions: write` job on `ubuntu-latest`, quota-scaled sweep budget); actionlint. - Sandbox (a fork standing in for apache/gravitino, contributor fork with a forced allowlist failure and a long stand-in job): the failure cancelled the run 12 seconds later, the upstream check showed `failure | Failed: asf_allowlist / asf-allowlist-check`, and "Re-run failed jobs" was available immediately and re-ran the cancelled jobs (Required CI succeeded). A run with an 18-minute job passed with the watcher exiting on its own, and a real test failure in `build / changes` cancelled a run within one poll, with the progress lines in the watcher log. - This PR changes `.github/workflows`, so its own Fork CI check needs a trusted run dispatched by a committer. -- 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]
