jenkins 如何在删除生成历史记录后运行第一个生成

vd8tlhqk  于 2023-08-03  发布在  Jenkins
关注(0)|答案(1)|浏览(82)

我创造了一个工作,最终似乎工作
因此,我决定删除所有不成功的构建历史,并将这些行传递给脚本控制台:

// change this variable to match the name of the job whose builds you want to delete
def jobName = "JOB_NAME_custom_binary"
def job = Jenkins.instance.getItem(jobName)

job.getBuilds().each { it.delete() }
// uncomment these lines to reset the build number to 1
job.nextBuildNumber = 1
job.save()

字符串
它从历史中删除了所有构建,但现在如果我尝试运行构建(选择作业选项“使用参数构建”-->点击“构建”按钮)似乎什么也没发生(没有构建开始)-只是一个像下面这样的屏幕
x1c 0d1x的数据
我是不是把剧本弄坏了?我能以某种方式修复它还是只能重新创建作业?

iibxawm4

iibxawm41#

在UI上看到的几乎所有内容都以文件系统中的文件的形式存在
在/var/jenkins_home/jobs/PATH_TO_YOUR_JOB
在那里,您将找到表示作业配置的config.xml
builds文件夹,其中包含每个构建的文件夹。通常包含来自控制台的日志文件和一些附加文件
如果builds(由于管道类型不同,可以使用不同名称)文件夹为空,则无法还原删除的项目
我创建了“测试”工作在根Jenkins与2参数和运行它2次

# ls -la /var/jenkins_home/jobs/test/builds
drwxr-xr-x 4 jenkins jenkins 4096 Aug  1 21:36 .
drwxr-xr-x 3 jenkins jenkins 4096 Aug  1 21:36 ..
drwxr-xr-x 3 jenkins jenkins 4096 Aug  1 21:36 1
drwxr-xr-x 3 jenkins jenkins 4096 Aug  1 21:36 2
-rw-r--r-- 1 jenkins jenkins    0 Aug  1 21:33 legacyIds
-rw-r--r-- 1 jenkins jenkins  126 Aug  1 21:36 permalinks

# cat permalinks 
lastCompletedBuild 2
lastFailedBuild -1
lastStableBuild 2
lastSuccessfulBuild 2
lastUnstableBuild -1
lastUnsuccessfulBuild -1

字符串
test/buildings/2$ cat build.xml

...
<parameters>
  <hudson.model.BooleanParameterValue>
    <name>user</name>
    <value>false</value>
  </hudson.model.BooleanParameterValue>
  <hudson.model.StringParameterValue>
    <name>ENV</name>
    <value>222222</value>
  </hudson.model.StringParameterValue>
</parameters>

...


使用保存的参数
在脚本执行后

cat permalinks 
lastCompletedBuild -1
lastFailedBuild -1
lastStableBuild -1
lastSuccessfulBuild -1
lastUnstableBuild -1
lastUnsuccessfulBuild -1
jenkins@fc67fb3fb752:~/jobs/test/builds$ ls -la 
total 12
drwxr-xr-x 2 jenkins jenkins 4096 Aug  1 21:45 .
drwxr-xr-x 3 jenkins jenkins 4096 Aug  1 21:45 ..
-rw-r--r-- 1 jenkins jenkins    0 Aug  1 21:33 legacyIds
-rw-r--r-- 1 jenkins jenkins  129 Aug  1 21:45 permalinks


没有生成目录
你的脚本删除了所有构建的作业(你没有条件,如果成功)
应该是这样的

import jenkins.model.Jenkins
import hudson.model.Result

// change this variable to match the name of the job whose builds you want to delete
def jobName = "JOB_NAME_custom_binary"
def job = Jenkins.instance.getItem(jobName)

job.getBuilds().each { build -> 
    if (build.getResult() != Result.SUCCESS) {
        build.delete() 
    }
}
// depends on what you need you need to detect it by your needs.
// job.nextBuildNumber = 1


您的文章标题与描述不同…不清楚你到底需要什么
如何通过groovy触发build now按钮查看此帖子https://stackoverflow.com/a/24262800/6727228

相关问题