groovy 如果中止,则从Jenkins历史记录中删除构建

mfuanj7w  于 2023-01-16  发布在  Jenkins
关注(0)|答案(2)|浏览(145)

我有一个管道大致如下(大部分借用自this),我需要停止并从历史中删除它,如果它中止。我试图避免插件。有一个简单的方法从历史中删除它吗?

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

3df52oht1#

您可以添加构建历史管理器(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) ]]])
}
wdebmtf2

wdebmtf22#

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

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()
          }
      }
}

相关问题