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]

Reply via email to