您好,我使用 jenkins groovy 文件来管理管道的步骤。
结构就像:
> ```
>
> 2 pipeline 3 {
> 4 agent none
> 5
> 6 options {
> 7 timeout(time: 240, unit: 'MINUTES')
> 8 }
> 9
> 10 stages {
> 11 stage ("clean xxxxxxx") {
> 12 agent {
> 13 node {
> 14 label "xxxxxxx"
> 15 customWorkspace "F:\\xxxxxxx"
> 16 }
> 17 }
> 18 steps
> 19 {
> 20 script
> 21 {
> 22 bat """
> 23 f:
> 24 cd \\
> 25 python
> xxxxxxx/scripts/pipeline/removeOldJenkinsBuildDir.py --nbdays 30
> --delete yes 26 python
> xxxxxxx/scripts/pipeline/cleanDotConan.py f: --delete
> 27 Powershell("Get-wmiObject -Class
> win32_logicaldisk")
> 28 """
> 29 }
> 30 }
> 31 }
>
> ```
对于我列表中的每个节点,依此类推。
我的问题
如果一个步骤失败了所有其余的开始并忽略消息:
Stage "clean XXXXXXXX" skipped due to earlier failure(s)
。
所以跳过了步骤,但我真的希望它们运行。
我的目标
在这里设置一些东西可能在步骤或更高级别,以避免跳过并强制运行所有步骤。我能做些什么呢?更改选项集?为每个步骤添加选项?
(事实上我发现了很多例子;但无法使用它们或崩溃了:))
这在官方文档中得到了解决,它提供了两个建议:Pipeline 步骤
catchError { }
和原生 Groovytry
-用于处理异常的语法catch
。finally
由于听起来您可能希望您的代码在许多不同的节点上重复,另一种选择可能是将您的节点放入
parallel
blocks中。一个并行分支中的故障不会停止任何其他并行分支中的执行。