我有几个共享一个节点的并行阶段,并在完成后清理它们的工作空间。我的问题是,当阶段失败时,我希望工作空间不被清理,这样我就可以检查它。实际情况是:
m1m5dgzv1#
Jenkins有一个后期阶段。根据管道的结果,执行不同的代码分支。因此,让我们说你的管道是成功的,然后你的清理脚本清理插件被称为。如果管道失败,您可以将结果存档,或者简单地跳过工作区的清理。查看官方jenkin文档以获取更多信息(搜索'post'):https://jenkins.io/doc/book/pipeline/syntax/
pipeline { agent any stages { stage('PostExample') { steps { // do something here } } } post { //Is called after your stage failure { //pipeline failed - do not clear workspace } success { //pipeline is successful - clear workspace } } }
字符串另一方面,如果你想保留你的结果,你可以考虑将它们归档,这样它们就独立于你的工作空间,因为你可以随时从Jenkins GUI(
p8h8hvxi2#
你只需要在执行jenkins文件时使用finally(这将执行而不考虑stage输出)方法:参见How to perform actions for failed builds in Jenkinsfile
3htmauhk3#
您应该查找ws(specified_workspace){your actions},它可以帮助您重新定义所包含的操作的工作区,因此您可以将其放在管道的开头。您可以为管道的每个新执行创建一个新的工作区(例如,使用执行编号或日期)。在post操作中(post用于声明式,finally用于脚本式),执行bat或shell命令,如果成功,将删除整个文件夹。在失败的情况下,还可以使用工件和归档您的工作空间
ws(specified_workspace){your actions}
post
finally
3条答案
按热度按时间m1m5dgzv1#
Jenkins有一个后期阶段。根据管道的结果,执行不同的代码分支。因此,让我们说你的管道是成功的,然后你的清理脚本清理插件被称为。如果管道失败,您可以将结果存档,或者简单地跳过工作区的清理。
查看官方jenkin文档以获取更多信息(搜索'post'):https://jenkins.io/doc/book/pipeline/syntax/
字符串
另一方面,如果你想保留你的结果,你可以考虑将它们归档,这样它们就独立于你的工作空间,因为你可以随时从Jenkins GUI(
p8h8hvxi2#
你只需要在执行jenkins文件时使用finally(这将执行而不考虑stage输出)方法:参见How to perform actions for failed builds in Jenkinsfile
3htmauhk3#
您应该查找
ws(specified_workspace){your actions}
,它可以帮助您重新定义所包含的操作的工作区,因此您可以将其放在管道的开头。您可以为管道的每个新执行创建一个新的工作区(例如,使用执行编号或日期)。在post操作中(post
用于声明式,finally
用于脚本式),执行bat或shell命令,如果成功,将删除整个文件夹。在失败的情况下,还可以使用工件和归档您的工作空间