我有一个管道大致如下(大部分借用自this),我需要停止并从历史中删除它,如果它中止。我试图避免插件。有一个简单的方法从历史中删除它吗?
node { checkout scm result = sh (script: "git log -1 | grep '\\[release\\]'", returnStatus: true) if (result == 0) { currentBuild.result = 'ABORTED' } }
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) ]]]) }
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() } } }
2条答案
按热度按时间3df52oht1#
您可以添加构建历史管理器(https://plugins.jenkins.io/build-history-manager/)插件并执行此操作。然后您在管道中添加此代码。通过此代码,历史从1删除到countBuildRemain。
wdebmtf22#
使用此脚本,当前作业将被删除。(请谨慎使用,不是最佳做法)
或声明性语法