-
-
Notifications
You must be signed in to change notification settings - Fork 11
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
Disable PR-merge mode everywhere #3474
Comments
Given we had no complains on Core and Tools I can't see an issue with enabling this on plugins as well? |
Updated. (Can easily revert if any concerns). |
https://ci.jenkins.io/job/Plugins/job/blueocean-plugin/indexing/console as of this writing still shows PR-merge mode; I wonder if something needs to happen to tickle children into switching config. (Without |
You might need to trigger a full rescan of https://ci.jenkins.io/job/Plugins/computation/console. I thought that you have been automatic after saving changes to https://ci.jenkins.io/job/Plugins/configure but maybe not? I do not think the build queue is relevant since indexing “runs on” the built-in node and should never be blocked. |
(Recommend reopening until it is actually observed to have taken effect.) |
It was scanned at: |
https://ci.jenkins.io/job/Plugins/computation/consoleFull does not mention
It just means there is going to be a one-time build storm like https://ci.jenkins.io/job/Plugins/job/claim-plugin/view/change-requests/job/PR-218/2/ as we switch from PR-merge to PR-head. Not sure why the org folder indexing halted; perhaps Jenkins was shut down while it was still running? |
Yes it was, as part of #3459 (comment) alas :| |
Ah, OK. So it should suffice to just retrigger indexing on |
I did that this morning and it failed I retriggered 30mins ago |
@timja When you trigger such a compute-consuming task, can you first sync with the infra team before? It would help us anticipate things (I had to restart the controller this morning, I assume we crossed path without knowing) |
(anyway, thanks for taking care of this folks, that will decrease the amount of non valuable builds 👍 ) |
Looks like the Plugins Org scanning is putting a lot of pressure to ci.jenkins.io 😅 |
Do we rebuild all PRs and branches of all repositories in jenkinsci atm? |
Yeah, unfortunately there is this one-time trigger of PR-head builds since the configuration has changed. I am not sure offhand if it is possible to suppress this. |
short term: increased the Azure VM capacity (since EC2 agents are not available until April): jenkins-infra/jenkins-infra#2726. Won't fix easily the issue, but should help. I'm surprise by the amount of plugin builds requiring Docker. |
You can try temporarily setting Branch names to build automatically to none (i.e., disable) and/or setting Suppression strategy to For matching branches suppress builds triggered by indexing (continue to honor webhooks) until the org scan is complete. I am not sure what happens when you revert the setting however. |
Let's patiently wait for the queue to be treated 🤞 if it is ok for you. |
(Added more capacity: increase the limit of "normal" Linux and Windows machines to 80 each) The builds is decreasing slowly |
@jglick Since others are now impacted with a build queue of length 1,618 due to the actions you have taken, should you become sure? |
@dduportal Why would you be surprised? When container agents were introduced, nobody migrated existing builds to use containers. So in the case where no action was taken, those builds are still running on VMs, whether they need to be (because they are using Docker) or not. |
About this specific point, I plan to do a batch action to set |
The instance ci.jenkinsis irresponsive. The build queue wasn't able to decrease since the past hour: it's fluctuate between 1550 and 1650 elements. Sounds like we won't be able to catch up and we are considering purging the build queue. Any objection? |
I can try to set up a demo environment of an org folder to look for ways to suppress builds at the PR-merge → PR-head transition. Due to the way GitHub is licensed this is not simple to automate, unfortunately. |
No objection from me to purging the build queue. If we don't purge it, we don't get things done (as far as I can tell). |
|
|
|
Yes, unless build triggering can be suppressed.
Sorry, I am not following the question. |
You can of course disable that for now (if it is currently enabled). |
Disabled the (once a week) automatic Scan for the "Plugins" GH Org:
|
Tried out an analogous scenario in GitHub Enterprise. (Using origin PRs, no forks.) Setting Suppression strategy to For matching branches suppress builds triggered by indexing (continue to honor webhooks) on the org folder does indeed prevent builds from being triggered by saving the org folder configuration after switching from PR-merge to PR-head. (Branch names to build automatically can be left at the default of You can also subsequently reset Suppression strategy to the default (suppress nothing) on the org folder and save it without immediately triggering builds. However any subsequent branch indexing on a repository folder will trigger corresponding PR-head builds, so if Child Scan Triggers has these being triggered frequently, you may wish to unset this, or at least ensure that the interval is long enough that we can spread out the load so there is not a sudden build storm. We can simply leave indexing-triggered builds suppressed indefinitely, as this exists just to ensure that code changes eventually get built even if webhooks are lost, but usually developers will anyway push a new empty commit or merge in the base branch or something if they are actually waiting for a build. |
Btw, discover the following setup: I wonder if the |
Gotta try tomorrow morning (EU time) this new option then. Estimated time: 07:00 UTC. |
Note: I did not attempt to configure a webhook in my demo controller, so I am just presuming that this option does what it says in that regard. |
Good grief, thanks for emphasing it. I'm adding the "Open a PR on the jenkins-infra-test plugin to see if the build is caught and taken" check item for tomorrow's operation: would that be covering this element of doubt? (I'm asking to be sure we understand correctly) |
Yes that would certainly be prudent. I can try configuring a webhook and checking that this still works given For matching branches suppress builds triggered by indexing (continue to honor webhooks). |
Confirmed that webhooks are still processed and trigger (PR-head) builds as expected. |
Starting the operation |
|
|
I believe we can close this issue: feel free to reopen if anything has been missed. |
Service(s)
ci.jenkins.io
Summary
According to #1355 (comment) the org folder config for
Plugins
still sets PR-merge mode (build the head of the PR merged with the current base branch revision). This is no longer the default (jenkinsci/github-branch-source-plugin#636) for various reasons, including extra load on the CI system which could be quite significant for us. (For example, as of this writing https://ci.jenkins.io/job/Plugins/job/blueocean-plugin/view/change-requests/job/PR-2248/ has had 90 builds despite jenkinsci/blueocean-plugin#2248 having had only one human interaction, a year ago.)A plugin maintainer who is afraid of semantic merge conflicts in head can add a branch restriction requesting that PRs be up to date before merging; but much better is to use the beta merge queue system (https://github.com/orgs/community/discussions/46757#discussioncomment-5392779), which seems to be working in https://github.com/jenkinsci/build-token-root-plugin/queue/master at least.
The text was updated successfully, but these errors were encountered: