我们的源是一个包含多个项目的大型存储库。如果在特定区域内发生提交,我们需要能够避免在存储库中构建所有项目。我们正在使用管道来管理构建过程。
git插件提供了忽略某些用户,路径和消息内容的提交的功能。但是,正如我们使用管道一样,我们认为我们遇到了JENKINS-36195所描述的问题。在最近的一篇评论中,Jesse建议检查变更集,如果变化看起来很无聊则提前返回。他提到退货声明在图书馆,封闭等内部不起作用,但他没有提到如何裁员。
如果不将其标记为失败并处理管道的所有阶段(以及可能的其他管道),您将如何在早期步骤中止作业?
答案 0 :(得分:1)
你能尝试在管道中使用try catch finally块吗?
try{
}
catch {
}
finally{
}
我想你也可以在管道中使用post build动作。
pipeline {
agent any
stages {
stage('Test') {
steps {
sh 'make check'
}
}
}
post {
always {
junit '**/target/*.xml'
}
failure {
mail to: team@example.com, subject: 'The Pipeline failed :('
}
}
}
文档位于https://jenkins.io/doc/book/pipeline/syntax/#post
下方您也可以尝试在构建步骤之外使用下面的条件,条件是Slawomir Demichowicz在票证中指定的条件。
if (stash.isJenkinsLastAuthor() && !params.SKIP_CHANGELOG_CHECK) {
echo "No more new changes, stopping pipeline"
currentBuild.result = "SUCCESS"
return
}
我不确定这可以帮到你。