丢弃多分支管道作业中的旧构建,并没有真正从服务器中删除构建

ari*_*lma 3 rhel jenkins-plugins jenkins-pipeline

我在 Jenkins 有多分支管道工作:

http://illinXXXX:XXXX/job/OC/configure
Run Code Online (Sandbox Code Playgroud)

我检查了丢弃旧版本的选项,如下所示:

丢弃旧版本

我原以为,在此更改后每次新运行,它都会从服务器中删除该管道内每个存储库的旧构建。但是,我看到所有构建仍然存在,这导致了我的文件系统问题。詹金斯链接:

http://illinXXX:XXXX/job/OC/job/productconfigurator-ms/job/master/
Run Code Online (Sandbox Code Playgroud)

从服务器:

jenkins@XXXXX:jenkins/jenkins-production/jobs/OC/jobs/productconfigurator-ms/branches/master/builds>
Run Code Online (Sandbox Code Playgroud)

我看到从 541 到 1039 的构建

詹金斯版。2.176.1

Mar*_*atC 6

您粘贴的界面用于孤立项目。孤立项是指已删除的分支,其中没有可用的 Jenkinsfile。

对于多分支管道,构建每个分支的指令位于该分支的 Jenkinsfile 中。这是您需要定义这些限制的地方。

在您的 Jenkinsfile 中使用以下内容(从上面,在master分支中):

options {
        buildDiscarder(logRotator(numToKeepStr: "100"))
}
Run Code Online (Sandbox Code Playgroud)

确保使用字符串(如"100")而不是数字(如100)。

参数:

  • daysToKeepStr: 历史只保留了这么多天。
  • numToKeepStr: 只保留这么多构建日志。
  • artifactDaysToKeepStr: 文物只保留了这么多天。
  • artifactNumToKeepStr:只有这么多构建保留了他们的工件。

您可能需要master手动运行一次管道才能使其工作。


xbm*_*ono 5

这相当于脚本化管道:

node('some-label') {
        properties([
                buildDiscarder(
                        logRotator(
                                artifactDaysToKeepStr: "10",
                                artifactNumToKeepStr: "50",
                                daysToKeepStr: "10",
                                numToKeepStr: "50")
                )
        ])

        stage('Maven Compile') {
        }

        stage('Some other steps') {
        }
   
}
Run Code Online (Sandbox Code Playgroud)