如果中止,则从詹金斯历史记录中删除构建



我有一个大致如下的管道(很大程度上借鉴了它(,如果它中止,我需要停止并将其从历史记录中删除。我正试图避免使用插件。有没有一种简单的方法可以将其从历史记录中删除?

node {
checkout scm
result = sh (script: "git log -1 | grep '\[release\]'", returnStatus: true) 
if (result == 0) {
currentBuild.result = 'ABORTED'
}
}

您可以添加BUILD HISTORY MANAGER(https://plugins.jenkins.io/build-history-manager/)插件并执行它。然后将此代码添加到管道中。通过此代码,历史记录已从1删除到countBuildRemain。

def buildNum = BUILD_ID as Integer
def num = countBuildRemain as Integer
def result = (buildNum) - (num)
options {
buildDiscarder BuildHistoryManager([[actions: [DeleteBuild()],
conditions: [BuildResult(matchAborted: true),
BuildNumberRange(maxBuildNumber: "${result}", minBuildNumber: 1) ]]])
}

使用此脚本,将删除当前作业。(谨慎使用,不是最佳做法(

node {
checkout scm
result = sh (script: "git log -1 | grep '\[release\]'", returnStatus: true) 
if (result == 0) {
currentBuild.result = 'ABORTED'
Run.fromExternalizableId(currentBuild.externalizableId).delete()
}
}

或声明性语法

post {
success {
}
aborted{
script{
Run.fromExternalizableId(currentBuild.externalizableId).delete()
}
}
}

最新更新