-
Notifications
You must be signed in to change notification settings - Fork 17
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Do not run full CI by default, require full CI before merging. #159
Comments
This feature is now in use to manage the |
In today's call, we've determined that this feature was urgently needed and we've come up with the following interaction model.
|
It'd be nice if we manage to setup the light / heavy CI setup in such a way that the large job is a true superset of the lighter one. That way, when caching is implemented better, the trigger of the heavier CI pipeline will reuse previous jobs. Note that another way to implement this is make coqbot aware of incremental CI setup (so it triggers individual jobs instead of a full pipeline) |
Currently, |
How do I get full CI to run for PRs where I'm the assignee not the author? |
Now there is. See: coq/coq#16600 (comment) |
I don't really like the label method. How about having a |
Done. See the updated coq/coq#16600 (comment). FTR, I intend to wait before implementing the last step (@coqbot checks that a full CI was run before merging) because I wonder if implementing this is actually necessary and if we cannot trust the Coq maintainers to properly check whether it was the case (there are also legitimate reasons to not do it, e.g., if the PR was just missing a changelog and has not been force-pushed). |
What if coqbot added the "needs: full CI" label automatically to every PR. That way it would never merge unless the CI has run or the label removed. |
With the current system it means the next push gets full ci |
But we could indeed consider something like this, for instance, coqbot adds a new label "needs: full CI before merging" to a PR when it runs a light pipeline on it (if the label is not already there) and it removes it when it runs a full pipeline (and puts it back at the next light pipeline). So, if the latest pipeline was not a full one, the assignee would have to manually remove the label to be able to perform the merge. That sounds like a reasonable enough solution that has the advantage of being more flexible than the one initially considered. |
And maybe it was a mistake to name the current label "needs: full CI" BTW. Maybe it should have been of a new category, like "request: full CI". |
FWIW, the solution proposed above was approved during the Coq Call yesterday and implemented today. The only remaining task now is to document the updated process. |
This is still missing from https://github.com/coq/coq/blob/master/CONTRIBUTING.md. Any help would be welcome. |
Fixed by coq/coq#17515. |
This was discussed during a Coq Call in late 2020: https://github.com/coq/coq/wiki/Coq-Call-2020-11-25
The idea was to distinguish between jobs that would be always run (lightweight mode) and jobs that would only be run on request (full mode). To ensure that we don't break the CI in
master
we should still require the full mode to be run on all PRs before merging. This could be ensured with a specific status check.This has become less critical now and it's not clear that we still want this after:
FWIW if / when we implement this feature, we could rely on the push option support of GitLab to specify if we are in lightweight mode or in full mode every time a PR is updated: https://docs.gitlab.com/ee/user/project/push_options.html#push-options-for-gitlab-cicd
The text was updated successfully, but these errors were encountered: