jenkinsci / build-discarder-plugin

Jenkins plugin extending the global build discarder functionality
https://plugins.jenkins.io/build-discarder/
MIT License
5 stars 5 forks source link

Pipeline specific custom build discarder configuration is not respected. #119

Open shiroyp opened 1 year ago

shiroyp commented 1 year ago

Jenkins and plugins versions report

Jenkins: 2.375.4 OS: Linux - 5.15.0-1035-aws Java: 11.0.20.1 - Ubuntu (OpenJDK 64-Bit Server VM)

JDK_Parameter_Plugin:1.2 JiraTestResultReporter:185.v749342e01ce4 ace-editor:1.1 allure-jenkins-plugin:2.30.3 analysis-model-api:10.23.1 android-device-connector:1.3-SNAPSHOT (private-02/28/2015 21:48-nghimbovschi) ant:481.v7b_09e538fcca antexec:196.v306c59b_7ca_ef antisamy-markup-formatter:159.v25bc67cd35fb any-buildstep:14.ve115ec1484f0 apache-httpcomponents-client-4-api:4.5.14-150.v7a_b_9d17134a_5 aqua-security-scanner:3.2.2 artifactory:3.18.1 atlassian-jira-software-cloud:2.0.7 audit-trail:333.vb_e1b_b_0f1238c authentication-tokens:1.4 aws-credentials:191.vcb_f183ce58b_9 aws-java-sdk:1.12.447-382.vda_68e2007233 aws-java-sdk-cloudformation:1.12.447-382.vda_68e2007233 aws-java-sdk-codebuild:1.12.447-382.vda_68e2007233 aws-java-sdk-ec2:1.12.447-382.vda_68e2007233 aws-java-sdk-ecr:1.12.447-382.vda_68e2007233 aws-java-sdk-ecs:1.12.447-382.vda_68e2007233 aws-java-sdk-efs:1.12.447-382.vda_68e2007233 aws-java-sdk-elasticbeanstalk:1.12.447-382.vda_68e2007233 aws-java-sdk-iam:1.12.447-382.vda_68e2007233 aws-java-sdk-kinesis:1.12.447-382.vda_68e2007233 aws-java-sdk-logs:1.12.447-382.vda_68e2007233 aws-java-sdk-minimal:1.12.447-382.vda_68e2007233 aws-java-sdk-sns:1.12.447-382.vda_68e2007233 aws-java-sdk-sqs:1.12.447-382.vda_68e2007233 aws-java-sdk-ssm:1.12.447-382.vda_68e2007233 aws-lambda:0.5.10 azure-commons:1.1.3 azure-credentials:254.v64da_8176c83a azure-sdk:132.v62b_48eb_6f32f azure-vm-agents:825.v470cb9e7361a badge:1.9.1 basic-branch-build-strategies:71.vc1421f89888e bitbucket:223.vd12f2bca5430 bitbucket-approve:1.0.3 bitbucket-build-status-notifier:1.4.2 bitbucket-post-payload-parser:1.1 bitbucket-pullrequest-builder:1.5.0 blackduck-detect:7.0.0 blueocean:1.26.0 blueocean-autofavorite:1.2.5 blueocean-bitbucket-pipeline:1.26.0 blueocean-commons:1.27.3 blueocean-config:1.27.3 blueocean-core-js:1.27.3 blueocean-dashboard:1.27.3 blueocean-display-url:2.4.1 blueocean-events:1.26.0 blueocean-executor-info:1.27.3 blueocean-git-pipeline:1.26.0 blueocean-github-pipeline:1.26.0 blueocean-i18n:1.27.3 blueocean-jira:1.27.3 blueocean-jwt:1.27.3 blueocean-personalization:1.27.3 blueocean-pipeline-api-impl:1.26.0 blueocean-pipeline-editor:1.26.0 blueocean-pipeline-scm-api:1.27.3 blueocean-rest:1.27.3 blueocean-rest-impl:1.27.3 blueocean-web:1.27.3 bootstrap4-api:4.6.0-5 bootstrap5-api:5.2.1-3 bouncycastle-api:2.27 branch-api:2.1071.v1a_188a_562481 build-blocker-plugin:1.7.8 build-metrics:1.3 build-name-setter:2.2.0 build-timeout:1.30 build-user-vars-plugin:1.9 built-on-column:1.4 caffeine-api:3.1.8-133.v17b_1ff2e0599 checks-api:1.8.1 claim:516.v36293563731d clone-workspace-scm:84.v147686859e1c cloud-stats:267.v577e3742c282 cloudbees-bitbucket-branch-source:800.va_b_b_9a_a_5035c1 cloudbees-disk-usage-simple:178.v1a_4d2f6359a_8 cloudbees-folder:6.815.v0dd5a_cb_40e0e cmakebuilder:4.1.1 cobertura:1.17 code-coverage-api:3.5.0 command-launcher:90.v669d7ccb7c31 commons-lang3-api:3.12.0-36.vd97de6465d5b commons-text-api:1.10.0-36.vc008c8fcda7b conditional-buildstep:1.4.2 config-file-provider:3.11.1 configuration-as-code:1625.v27444588cc3d confluence-publisher:156.vf3597ca_9cf27 copyartifact:697.v12c6e8c8fb_34 cppcheck:1.26 create-fingerprint:25.v0a_b_e60b_42fa_4 credentials:1224.vc23ca_a_9a_2cb_0 credentials-binding:604.vb_64480bc56ca customized-build-message:1.1 cvs:2.19.1 dashboard-view:2.472.v9ff2a_e6a_c529 data-tables-api:1.12.1-4 dependency-check-jenkins-plugin:5.4.0 dependency-track:4.3.1 deploy:1.16 description-setter:1.10 disk-usage:0.28 display-url-api:2.3.7 docker-commons:419.v8e3cd84ef49c docker-java-api:3.2.13-68.va_875df25a_b_45 docker-plugin:1.3.0 docker-workflow:563.vd5d2e5c4007f dtkit-api:3.0.2 durable-task:504.vb10d1ae5ba2f ec2:2.0.4 echarts-api:5.4.0-1 email-ext:2.96 embeddable-build-status:369.vb_a_68a_575a_b_11 emma:1.31 envinject:2.901.v0038b_6471582 envinject-api:1.199.v3ce31253ed13 extended-read-permission:3.2 extensible-choice-parameter:1.8.0 external-monitor-job:203.v683c09d993b_9 extra-columns:1.25 favorite:2.4.1 file-leak-detector:1.11 flexible-publish:0.16.1 font-awesome-api:6.2.1-1 forensics-api:1.17.0 git:5.0.2 git-client:4.3.0 git-server:99.va_0826a_b_cdfa_d github:1.34.5 github-api:1.303-417.ve35d9dd78549 github-branch-source:1696.v3a_7603564d04 github-organization-folder:1.6 gitlab-api:5.3.0-91.v1f9a_fda_d654f gitlab-branch-source:664.v877fdc293c89 gitlab-merge-request-jenkins:2.0.0 gitlab-oauth:1.17 gitlab-plugin:1.7.14 global-build-stats:269.v214f74360b3a global-post-script:1.1.4 golang:1.4 gradle:2.4 greenballs:1.15.1 groovy:453.vcdb_a_c5c99890 groovy-postbuild:2.5 handlebars:3.0.8 handy-uri-templates-2-api:2.1.8-22.v77d5b_75e6953 htmlpublisher:1.31 http_request:1.16 icon-shim:3.0.0 instance-identity:142.v04572ca_5b_265 ionicons-api:45.vf54fca_5d2154 ivy:2.4 jackson2-api:2.15.2-350.v0c2f3f8fc595 jacoco:3.3.3 jakarta-activation-api:2.0.1-3 jakarta-mail-api:2.0.1-3 javadoc:233.vdc1a_ec702cff javax-activation-api:1.2.0-6 javax-mail-api:1.6.2-9 jaxb:2.3.8-1 jdk-tool:63.v62d2fd4b_4793 jenkins-cloudformation-plugin:201.vd58a_a_f4a_b_75f jenkins-design-language:1.27.3 jenkins-jira-issue-updater:1.18 jenkins-multijob-plugin:623.v03401733c9a_9 jersey2-api:2.39.1-1 jira:3.9 jjwt-api:0.11.5-77.v646c772fddb_0 jnr-posix-api:3.1.16-2 job-dsl:1.82 job-node-stalker:1.0.5 jobConfigHistory:1207.vd28a_54732f92 jobdelete-builder:1.0 jobgenerator:1.22 jquery:1.12.4-1 jquery-detached:1.2.1 jquery-ui:1.0.2 jquery3-api:3.6.1-2 jsch:0.1.55.61.va_e9ee26616e7 junit:1202.v79a_986785076 kubernetes:3923.v294a_d4250b_91 kubernetes-client-api:6.4.1-215.v2ed17097a_8e9 kubernetes-credentials:0.10.0 ldap:671.v2a_9192a_7419d lockable-resources:1131.vb_7c3d377e723 m2release:0.16.3 mailer:448.v5b_97805e3767 mapdb-api:1.0.9-28.vf251ce40855d matrix-auth:3.1.7 matrix-project:808.v5a_b_5f56d6966 maven-plugin:3.21 mercurial:1260.vdfb_723cdcc81 metrics:4.2.13-420.vea2f17932dd6 mina-sshd-api-common:2.10.0-69.v28e3e36d18eb mina-sshd-api-core:2.10.0-69.v28e3e36d18eb_ momentjs:1.1.1 monitoring:1.94.0 msbuild:1.30 mstest:1.0.0 mstestrunner:1.5.0 multi-module-tests-publisher:1.44 multibranch-build-strategy-extension:1.0.10 multiple-scms:0.8 naginator:1.18.2 nested-view:1.29 netsparker-cloud-scan:2.1.10 next-build-number:1.8 nexus-jenkins-plugin:3.16.487.v5d4d3b_6942ee node-iterator-api:49.v58a_8b_35f8363 nodelabelparameter:1.11.0 okhttp-api:4.10.0-132.v7a_7b_91cef39c pam-auth:1.10 parameterized-scheduler:1.2 parameterized-trigger:2.45 performance:918.v5511b_a_d40338 pipeline-build-step:488.v8993df156e8d pipeline-github-lib:38.v445716eaedda pipeline-graph-analysis:202.va_d268e64deb_3 pipeline-groovy-lib:656.va_a_ceeb_6ffb_f7 pipeline-input-step:466.v6d0a_5df34f81 pipeline-milestone-step:111.v449306f708b_7 pipeline-model-api:2.2125.vddb_a_44a_d605e pipeline-model-declarative-agent:1.1.1 pipeline-model-definition:2.2121.vd87fb_6536d1e pipeline-model-extensions:2.2125.vddb_a_44a_d605e pipeline-multibranch-defaults:2.1 pipeline-npm:49.v9c8598493533 pipeline-rest-api:2.32 pipeline-stage-step:305.ve96d0205c1c6 pipeline-stage-tags-metadata:2.2125.vddb_a_44a_d605e pipeline-stage-view:2.32 pipeline-utility-steps:2.15.1 pitmutation:1.0-18 plain-credentials:143.v1b_df8b_d3b_e48 plugin-usage-plugin:4.0 plugin-util-api:2.20.0 popper-api:1.16.1-3 popper2-api:2.11.6-2 port-allocator:1.10 postbuild-task:1.9 postbuildscript:3.2.0-460.va_fda_0fa_26720 powershell:2.0 prism-api:1.29.0-2 prisma-cloud-jenkins-plugin:22.12.699 prometheus:2.2.1 publish-over:0.22 publish-over-ssh:1.24 pubsub-light:1.17 radiatorviewplugin:1.29 remote-file:1.23 resource-disposer:0.22 reverse-proxy-auth-plugin:1.7.4 role-strategy:625.vb_00565139872 run-condition:1.5 s3:0.12.3436.v674b_46258039 saferestart:0.7 saml:2.333.vc81e525974a_c scm-api:676.v886669a_199aa script-security:1269.v639888f5e366 sidebar-link:2.2.1 skip-certificate-check:1.1 slack:631.v40deea_40323b snakeyaml-api:1.33-95.va_b_a_e3e47b_fa_4 sonar:2.15 sse-gateway:1.26 ssh-agent:327.v230ecd01f86f ssh-credentials:305.v8f4381501156 ssh-slaves:1.834.v622da_57f702c sshd:3.275.v9e17c10f2571 structs:324.va_f5d6774f3a_d subversion:2.17.1 test-results-analyzer:0.4.0 testlink:3.16 testng-plugin:730.v4c5283037693 throttle-concurrents:2.13 timestamper:1.24 token-macro:384.vf35b_f26814ec translation:1.16 trilead-api:2.84.v72119de229b_7 valgrind:0.28 variant:59.vf075fe829ccb veracode-scan:23.3.19.0 versioncolumn:145.va_e3ca_f8a_a_d23 vstestrunner:1.0.8 warnings-ng:9.23.1 windows-azure-storage:380.va3a027b784f4 windows-slaves:1.8.1 workflow-aggregator:596.v8c21c963d92d workflow-api:1281.vca_5fddb3fceb workflow-basic-steps:1010.vf7a_b_98e847c1 workflow-cps:3653.v07ea_433c90b_4 workflow-cps-global-lib:609.vd95673f149b_b workflow-durable-task-step:1244.vee71f675dee6 workflow-job:1326.ve643e00e9220 workflow-multibranch:733.v109046189126 workflow-scm-step:408.v7d5b_135a_b_d49 workflow-step-api:639.v6eca_cd8c04aa workflow-support:839.v35e2736cfd5c ws-cleanup:0.45 xframe-filter-plugin:1.2 xunit:3.1.2

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

Jenkins Master: Ubuntu 20.04.6 LTS Jenkins Agents: Ubuntu 22.04/20.04 LTS

Reproduction steps

Configured Build discarder plugin to retain last 10 builds at Global Build Discarders: Manage Jenkins >> Configure System >> Global Build Discarders

Certain pipelines need a longer build retention configuration. So Added a job specific configuration in the Jenkinsfile of one ot:

buildDiscarder(logRotator(daysToKeepStr: '7', numToKeepStr: '1000', artifactDaysToKeepStr: '7', artifactNumToKeepStr: '1000'))

Run several pipeline runs above 10.

Expected Results

My expectation is that pipelines without a build discarder configuration should be applied with the Global Build Discarder configuration. And, any pipeline having a custom build discarder should be applied accordingly to that pipeline.

Actual Results

Pipeline with specific build discarder configuration is not respecting the custom configuration. Instead it was following the global build discarder configuration and retain only last 10 builds and the rest is removed.

Anything else?

No response

xaho commented 10 months ago

Experiencing the same issue, adding my versions in case it helps:

Jenkins and plugins versions report

Jenkins: 2.401.2 OS: Linux - 6.1.32-0-virt Java: 11.0.19 - Eclipse Adoptium (OpenJDK 64-Bit Server VM) --- Office-365-Connector:4.20.0 antisamy-markup-formatter:162.v0e6ec0fcfcf6 apache-httpcomponents-client-4-api:4.5.14-208.v438351942757 authentication-tokens:1.53.v1c90fd9191a_b_ aws-credentials:218.v1b_e9466ec5da_ aws-java-sdk:1.12.529-406.vdeff15e5817d aws-java-sdk-cloudformation:1.12.529-406.vdeff15e5817d aws-java-sdk-codebuild:1.12.529-406.vdeff15e5817d aws-java-sdk-ec2:1.12.529-406.vdeff15e5817d aws-java-sdk-ecr:1.12.529-406.vdeff15e5817d aws-java-sdk-ecs:1.12.529-406.vdeff15e5817d aws-java-sdk-efs:1.12.529-406.vdeff15e5817d aws-java-sdk-elasticbeanstalk:1.12.529-406.vdeff15e5817d aws-java-sdk-iam:1.12.529-406.vdeff15e5817d aws-java-sdk-kinesis:1.12.529-406.vdeff15e5817d aws-java-sdk-logs:1.12.529-406.vdeff15e5817d aws-java-sdk-minimal:1.12.529-406.vdeff15e5817d aws-java-sdk-secretsmanager:1.12.529-406.vdeff15e5817d aws-java-sdk-sns:1.12.529-406.vdeff15e5817d aws-java-sdk-sqs:1.12.529-406.vdeff15e5817d aws-java-sdk-ssm:1.12.529-406.vdeff15e5817d basic-branch-build-strategies:81.v05e333931c7d bootstrap5-api:5.3.0-1 bouncycastle-api:2.29 branch-api:2.1128.v717130d4f816 build-discarder:139.v05696a_7fe240 caffeine-api:3.1.8-133.v17b_1ff2e0599 checks-api:2.0.1 cloudbees-bitbucket-branch-source:809.vc1d904b_30426 cloudbees-folder:6.848.ve3b_fd7839a_81 command-launcher:90.v669d7ccb_7c31 commons-httpclient3-api:3.1-3 commons-lang3-api:3.13.0-62.v7d18e55f51e2 commons-text-api:1.10.0-78.v3e7b_ea_d5a_fe1 conditional-buildstep:1.4.2 config-file-provider:938.ve2b_8a_591c596 configuration-as-code:1647.ve39ca_b_829b_42 credentials:1271.v54b_1c2c6388a_ credentials-binding:631.v861c06d062b_4 datadog:5.4.1 display-url-api:2.3.9 durable-task:523.va_a_22cf15d5e0 echarts-api:5.4.0-5 font-awesome-api:6.4.0-2 git:5.1.0 git-client:4.4.0 github-api:1.314-431.v78d72a_3fe4c3 handy-uri-templates-2-api:2.1.8-22.v77d5b_75e6953 ignore-committer-strategy:1.0.4 instance-identity:173.va_37c494ec4e5 ionicons-api:56.v1b_1c8c49374e jackson2-api:2.15.2-350.v0c2f3f8fc595 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-8 jaxb:2.3.8-1 jdk-tool:63.v62d2fd4b_4793 jnr-posix-api:3.1.17-1 job-dsl:1.84 jquery:1.12.4-1 jquery3-api:3.7.0-1 junit:1217.v4297208a_a_b_ce kubernetes:4029.v5712230ccb_f8 kubernetes-client-api:6.8.1-224.vd388fca_4db_3b_ kubernetes-credentials:0.11 list-git-branches-parameter:0.0.13 mailer:463.vedf8358e006b_ mask-passwords:150.vf80d33113e80 matrix-project:808.v5a_b_5f56d6966 metrics:4.2.18-442.v02e107157925 mina-sshd-api-common:2.10.0-69.v28e3e36d18eb_ mina-sshd-api-core:2.10.0-69.v28e3e36d18eb_ okhttp-api:4.11.0-157.v6852a_a_fa_ec11 parameterized-scheduler:1.2 parameterized-trigger:2.46 pipeline-aws:1.43 pipeline-build-step:505.v5f0844d8d126 pipeline-graph-analysis:202.va_d268e64deb_3 pipeline-groovy-lib:685.v8ee9ed91d574 pipeline-input-step:468.va_5db_051498a_4 pipeline-milestone-step:111.v449306f708b_7 pipeline-model-api:2.2144.v077a_d1928a_40 pipeline-model-definition:2.2144.v077a_d1928a_40 pipeline-model-extensions:2.2144.v077a_d1928a_40 pipeline-rest-api:2.33 pipeline-stage-step:305.ve96d0205c1c6 pipeline-stage-tags-metadata:2.2144.v077a_d1928a_40 pipeline-stage-view:2.33 pipeline-utility-steps:2.16.0 plain-credentials:143.v1b_df8b_d3b_e48 plugin-util-api:3.3.0 rebuild:320.v5a_0933a_e7d61 remote-file:1.23 repository-connector:2.2.1 robot:3.3.0 run-condition:1.7 schedule-build:467.vf48c1532e9eb_ scm-api:676.v886669a_199a_a_ script-security:1275.v23895f409fb_d simple-theme-plugin:160.vb_76454b_67900 snakeyaml-api:2.2-111.vc6598e30cc65 sonar:2.15 ssh-agent:333.v878b_53c89511 ssh-credentials:308.ve4497b_ccd8f4 sshd:3.249.v2dc2ea_416e33 stashNotifier:1.28 structs:325.vcb_307d2a_2782 token-macro:384.vf35b_f26814ec trilead-api:2.84.v72119de229b_7 uno-choice:2.6.5 variant:60.v7290fc0eb_b_cd workflow-aggregator:596.v8c21c963d92d workflow-api:1267.vd9b_a_ddd9eb_47 workflow-basic-steps:1042.ve7b_140c4a_e0c workflow-cps:3785.vee73da_b_9544e workflow-durable-task-step:1289.v4d3e7b_01546b_ workflow-job:1326.ve643e00e9220 workflow-multibranch:756.v891d88f2cd46 workflow-scm-step:415.v434365564324 workflow-step-api:639.v6eca_cd8c04a_a_ workflow-support:848.v5a_383b_d14921 ws-ws-replacement:1.0.1

xaho commented 10 months ago

Experiencing the same issue, adding my versions in case it helps:

Jenkins and plugins versions report

In my case we were incorrectly using the buildDiscarder. We had a 'seed' job that generated our pipelines and those pipelines got their pipeline definition from git. In those declarative pipelines we had defined something like buildDiscarder(logRotator(daysToKeepStr: '7', numToKeepStr: '1000', artifactDaysToKeepStr: '7', artifactNumToKeepStr: '1000')), but that can cause some issues. These logRotator settings will only be applied when you run the pipelines itself and the declarative pipeline is executed, not when the 'seed' job that generated the pipeline is executed. Additionally, whenever the seed job is re-run the settings are cleared as it was not in the definition of the pipeline.

We fixed our issue by removing the buildDiscarder(logRotator(daysToKeepStr: '7', numToKeepStr: '1000', artifactDaysToKeepStr: '7', artifactNumToKeepStr: '1000')) from the declarative pipeline and instead adding it to the job DSL definition of the pipeline, for example:

pipelineJob('pipeline name') {
...
+    logRotator {
+        daysToKeep 42
+        artifactDaysToKeep 42
+    }
...
})

https://jenkinsci.github.io/job-dsl-plugin/#path/pipelineJob

ityaad commented 8 months ago

Pretty late to the party, but might help others looking for a solution.

@shiroyp See Issue https://github.com/jenkinsci/build-discarder-plugin/issues/87. Please install the Build Discarder plugin (it does not appear in your plugin list). Then as suggested by @orjan change the Specific Build Discarder to Default Build Discarder in Jenkins Global Build Discarders configuration.

eliasbalasis commented 7 months ago

I am facing similar issues here on declarative pipelines:

    options {
        buildDiscarder \
            logRotator( \
                artifactDaysToKeepStr: '', \
                artifactNumToKeepStr: '', \
                daysToKeepStr: '${some env var}', \
                numToKeepStr: '${another env var}' \
                )
    }

with the environment variables present and the following global discarder image the builds never get deleted and space is increasing fast, unless I start deleting jobs manually which is not useful at all.

Jenkins 2.448

Relevant Plugins image

orjan commented 7 months ago

@eliasbalasis are you configuring this plugin?

It looks like you're using buildDiscarder instead of

unclassified:
  buildDiscarders:
    configuredBuildDiscarders:
    - "jobBuildDiscarder"
    - defaultBuildDiscarder:
        discarder:
          logRotator:
            artifactDaysToKeepStr: "50"
            artifactNumToKeepStr: "5"
            daysToKeepStr: "100"
            numToKeepStr: "10"

https://github.com/jenkinsci/build-discarder-plugin?tab=readme-ov-file#configuration-as-code

eliasbalasis commented 7 months ago

I have now carefully followed the instructions at https://plugins.jenkins.io/build-discarder/

I added a global "Project Build Discarder", a "Default Build Discarder" with default values (instead of the "configure as code" part) and my declarative pipeline part as before.

After running a build with my declarative pipeline part I don't see any old builds discarded.

However, I discovered that when using fixed values instead of environment variables to control the discarder in the declarative pipeline part, it works, after a new build the old builds disappear as expected.

I think we need to make the plugin understand environment variables, as I cannot keep configuring jobs of different types with different discarder values individually, I have too many to maintain.

eliasbalasis commented 7 months ago

I have linked https://issues.jenkins.io/browse/JENKINS-38239

Use of Groovy GStrings with double quotes (") seems to be the solution and it works.

I am considering the issue as resolved.

bassg0navy commented 5 months ago
    options {
        buildDiscarder \
            logRotator( \
                artifactDaysToKeepStr: '', \
                artifactNumToKeepStr: '', \
                daysToKeepStr: '${some env var}', \
                numToKeepStr: '${another env var}' \
                )
    }

@eliasbalasis does the empty strings allow you to retain all artifacts? I'm trying to configure some pipelines to not delete any artifacts or builds at all.

eliasbalasis commented 5 months ago

@bassg0navy, I have not experienced any issues with the empty strings on the artifact retention settings.

Keep also in mind that I had to use Groovy GStrings with double quotes (") to resolve envirnoment variables.

However, there could be some global default in your case.

bassg0navy commented 5 months ago

Thank you for responding. This is what I needed to proceed further. Was not sure if empty string == "keep all".