jenkinsci / bitbucket-branch-source-plugin

Bitbucket Branch Source Plugin
https://plugins.jenkins.io/cloudbees-bitbucket-branch-source
MIT License
217 stars 349 forks source link

Pull Request policy for "Merging" with target polluting workspace on Jenkins master #847

Open lgcCerti opened 2 months ago

lgcCerti commented 2 months ago

Jenkins and plugins versions report

Environment ```text Jenkins: 2.440.2 OS: Linux - 5.4.0-170-generic Java: 17.0.10 - Private Build (OpenJDK 64-Bit Server VM) --- ant:497.v94e7d9fffa_b_9 antisamy-markup-formatter:162.v0e6ec0fcfcf6 apache-httpcomponents-client-4-api:4.5.14-208.v438351942757 apache-httpcomponents-client-5-api:5.3.1-1.0 authentication-tokens:1.53.v1c90fd9191a_b_ bitbucket:241.v6d24a_57f9359 bitbucket-build-status-notifier:1.4.2 bitbucket-push-and-pull-request:3.0.2 bootstrap5-api:5.3.2-3 bouncycastle-api:2.30.1.77-225.v26ea_c9455fd9 branch-api:2.1144.v1425d1c3d5a_7 build-timeout:1.32 caffeine-api:3.1.8-133.v17b_1ff2e0599 checks-api:2.0.2 cloud-stats:336.v788e4055508b_ cloudbees-bitbucket-branch-source:880.vcf4056c5a_71f cloudbees-folder:6.858.v898218f3609d command-launcher:107.v773860566e2e commons-lang3-api:3.13.0-62.v7d18e55f51e2 commons-text-api:1.11.0-95.v22a_d30ee5d36 credentials:1311.vcf0a_900b_37c2 credentials-binding:642.v737c34dea_6c2 data-tables-api:1.13.8-2 display-url-api:2.200.vb_9327d658781 docker-commons:439.va_3cb_0a_6a_fb_29 docker-java-api:3.3.4-86.v39b_a_5ede342c docker-plugin:1.5 docker-workflow:572.v950f58993843 durable-task:543.v262f6a_803410 echarts-api:5.4.3-2 email-ext:2.104 font-awesome-api:6.5.1-1 git:5.2.1 git-client:4.6.0 github:1.37.3.1 github-api:1.318-461.v7a_c09c9fa_d63 github-branch-source:1767.va_7d01ea_c7256 gradle:2.9 gson-api:2.10.1-15.v0d99f670e0a_7 handy-uri-templates-2-api:2.1.8-30.v7e777411b_148 htmlpublisher:1.33 instance-identity:185.v303dc7c645f9 ionicons-api:56.v1b_1c8c49374e jackson2-api:2.16.1-373.ve709c6871598 jakarta-activation-api:2.0.1-3 jakarta-mail-api:2.0.1-3 javax-activation-api:1.2.0-6 javax-mail-api:1.6.2-9 jaxb:2.3.9-1 jdk-tool:73.vddf737284550 jjwt-api:0.11.5-77.v646c772fddb_0 job-dsl:1.87 joda-time-api:2.12.6-21.vca_fd74418fb_7 jquery3-api:3.7.1-1 jsch:0.2.16-86.v42e010d9484b_ json-path-api:2.8.0-21.v8b_7dc8b_1037b_ junit:1256.v002534a_5f33e ldap:711.vb_d1a_491714dc lockable-resources:1232.v512d6c434eb_d mailer:463.vedf8358e006b_ matrix-auth:3.2.1 matrix-project:822.824.v14451b_c0fd42 mercurial:1260.vdfb_723cdcc81 mina-sshd-api-common:2.11.0-86.v836f585d47fa_ mina-sshd-api-core:2.11.0-86.v836f585d47fa_ multiple-scms:0.8 okhttp-api:4.11.0-157.v6852a_a_fa_ec11 pam-auth:1.10 pipeline-build-step:540.vb_e8849e1a_b_d8 pipeline-github-lib:42.v0739460cda_c4 pipeline-graph-analysis:202.va_d268e64deb_3 pipeline-groovy-lib:689.veec561a_dee13 pipeline-input-step:477.v339683a_8d55e pipeline-milestone-step:111.v449306f708b_7 pipeline-model-api:2.2168.vf921b_4e72c73 pipeline-model-definition:2.2168.vf921b_4e72c73 pipeline-model-extensions:2.2168.vf921b_4e72c73 pipeline-rest-api:2.34 pipeline-stage-step:305.ve96d0205c1c6 pipeline-stage-tags-metadata:2.2168.vf921b_4e72c73 pipeline-stage-view:2.34 plain-credentials:143.v1b_df8b_d3b_e48 plugin-util-api:3.8.0 resource-disposer:0.23 scm-api:683.vb_16722fb_b_80b_ script-security:1313.v7a_6067dc7087 snakeyaml-api:2.2-111.vc6598e30cc65 ssh-credentials:308.ve4497b_ccd8f4 ssh-slaves:2.948.vb_8050d697fec sshd:3.322.v159e91f6a_550 structs:325.vcb_307d2a_2782 timestamper:1.26 token-macro:400.v35420b_922dcb_ trilead-api:2.142.v748523a_76693 variant:60.v7290fc0eb_b_cd workflow-aggregator:596.v8c21c963d92d workflow-api:1283.v99c10937efcb_ workflow-basic-steps:1042.ve7b_140c4a_e0c workflow-cps:3837.v305192405b_c0 workflow-durable-task-step:1313.vcb_970b_d2a_fb_3 workflow-job:1385.vb_58b_86ea_fff1 workflow-multibranch:770.v1a_d0708dd1f6 workflow-scm-step:415.v434365564324 workflow-step-api:639.v6eca_cd8c04a_a_ workflow-support:865.v43e78cc44e0d ws-cleanup:0.45 ```

What Operating System are you using (both controller, and any agents involved in the problem)?

Distributor ID: Ubuntu Description: Ubuntu 20.04.6 LTS

Reproduction steps

  1. Create a Repository on bitbucket with a Jenkinsfile that Jenkins has access to and create a task for that repository
  2. Create a new branch with changes and push to the remote bitbucket
  3. Configure Branch source to "Merge" with target before running the pipeline image
  4. Commit to the main branch with changes and push to remote bitbucket
  5. Create a pull request on the repository
  6. Jenkins will create the detached head of the merge and run the pipeline
  7. Jenkins will leave this detached head in the workspace of Jenkins Master, cluttering its workspace in its @script folders

Expected Results

Merged head being removed from the Jenkins Master after the operation is finished. Clean Workspace commands working to remove these files from Jenkins Master.

Actual Results

Jenkins Master being cluttered with detached heads until the disc space explodes.

Anything else?

An option to clear the script workspace for configuration could help a lot.

Are you interested in contributing a fix?

There may be already a fix but I haven't seen it.

schiasileon commented 1 month ago

Hi, we have the same problem on our build systems, cluttering up jenkins controller nodes in k8s as the controller workspaces do not get cleaned up. This leads to us having to perform several manual cleanups weekly.

This can really 'explode' the disk usage, as we have several repos that are > 1GB with several hundreds of PR builds a day.