我正在尝试使用此答案中的说明从 Jenkins 删除构建历史记录:
但是,我收到以下错误消息:
groovy.lang.MissingMethodException:没有方法签名:jenkins.branch.OrganizationFolder.getBuilds() 适用于参数类型:() 值:[] 可能的解决方案:getViews()、doBuild(jenkins.util.TimeDuration)、getUrl( ), getClass(), getActions(), getApi() 在 org.codehaus.groovy.runtime.ScriptBytecodeAdapter.unwrap(ScriptBytecodeAdapter.java:58) 在 org.codehaus.groovy.runtime.callsite.PojoMetaClassSite.call(PojoMetaClassSite.java :49)在org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:48)在org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:113)在org.codehaus。 groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:117)
如果我运行这个脚本:
def jobName = "github-test"
def job = Jenkins.instance.getItem(jobName)
println(job)
Run Code Online (Sandbox Code Playgroud)
我得到以下输出:
jenkins.branch.OrganizationFolder@134f3a3c[github-test]
我使用的是2.32.2版本。
这是我运行的确切脚本:
def jobName = "github-test"
def job = Jenkins.instance.getItem(jobName)
job.getBuilds().each { it.delete() }
job.nextBuildNumber = 1
job.save()
Run Code Online (Sandbox Code Playgroud)
您尝试删除的作业github-test是一个组织文件夹,例如您得到jenkins.branch.OrganizationFolder。这意味着它不是具有实际构建的实际作业,而是包含其他作业的文件夹。值得注意的是,OrganizationFolder它的类型ComputedFolder意味着当 Jenkins 发现新的存储库和分支(在 github 上)时,它会自动填充。
所以我猜测您不想从作业/文件夹中的子作业中删除所有构建github-test。我修改了链接的答案,以便它考虑文件夹:
import com.cloudbees.hudson.plugins.folder.AbstractFolder
import hudson.model.AbstractItem
// change this variable to match the name of the job whose builds you want to delete
def jobName = "test"
// Set to true in order to reset build number to 1
def resetBuildNumber = false
def removeBuilds(job, resetBuildNumber) {
if (job instanceof AbstractFolder) {
for (subJob in job.getItems()) {
removeBuilds(subJob, resetBuildNumber)
}
} else if (job instanceof AbstractItem) {
job.getBuilds().each { it.delete() }
if (resetBuildNumber) {
job.nextBuildNumber = 1
job.save()
}
} else {
throw new RuntimeException("Unsupported job type ${job.getClass().getName()}!")
}
}
removeBuilds(Jenkins.instance.getItem(jobName), resetBuildNumber)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5685 次 |
| 最近记录: |