jdaugherty commented on PR #16673: URL: https://github.com/apache/grails-core/pull/16673#issuecomment-6278216598
Thanks for the careful read. All of it is folded into the single commit, now 9cdcfeaac2. 1. **Retries.** The commit read is retried five times with a growing pause (2, 4, 8, 16 s). If it still fails, the policy runs the tests, as every pull request did before this change, and leaves a warning annotation and a note in the job summary. The policy job no longer fails on an API error, so nothing behind it is skipped. 2. **Manual runs.** In `apache/grails-core` a `workflow_dispatch` keeps following the branch rule. That is deliberate: the way to test an older branch is a pull request or a `[run tests]` commit. In a fork, where the runner time is the fork owner's rather than the ASF's, a manual run now runs the tests unless the commit says `[skip tests]`. 3. **Mechanical check.** Agreed, and we will add it to the repository conventions task when this is merged up to 8.0.x. That task lives in `build-logic` on 8.0.x and later only, so it cannot ride in a pull request against 7.0.x. The rule is: in any workflow with a `pull_request` trigger, every job either needs `policy`, directly or through another job, or carries the label-and-draft `if`. A job with `always()` in its `if` ignores a skipped dependency, so it has to restrict the event or repeat the label check, as `publish` does. 4. **`labeled` trigger.** We would rather not. GitHub cannot filter a `labeled` event by label name before the run starts, so every label event, including the autolabeler on every pull request open, would start a run of all eight pull-request workflows. Each of those needs a concurrency exception or it cancels the real run for that ref, and their skipped jobs become the latest check runs for the commit, replacing the green results in the merge box. Setting the label and then pushing, or marking the draft ready, is cheaper, and a `no ci` label on a pull request that is already running is a one-click cancel. 5. **Concurrency.** Yes: a push to a draft cancels the in-flight run for that pull request, exactly as every pull request push did before this change, because `cancel-in-progress` is on for `pull_request` events. The only new part is that the replacing run does nothing, since the draft rule skips every job. The cancelled run was for a superseded commit anyway, so that is the wanted outcome. It is now documented in AGENTS.md and CONTRIBUTING.md. 6. **Labels.** `no ci` and `run ci` now exist on the repository. -- 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]
