你好,我使用 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)
。
所以跳过了步骤但我真的希望它们运行。
我的目标
在这里设置一些内容,可能在步骤或更高级别,以避免跳过并强制运行所有步骤。我能做些什么呢?更改选项集?为每个步骤添加选项?
(事实上我找到了很多例子;但无法使用它们或者崩溃了:))
答案1
答案2
当 Jenkins 阶段失败时,其余所有阶段都会启动并忽略消息。因此,阶段会被跳过,但您确实希望它们运行。您可以使用 catchError 块来捕获错误并继续管道。以下是一个例子:
stage('Example') {
steps {
catchError(buildResult: 'SUCCESS', stageResult: 'FAILURE') {
sh './run-my-script.sh'
}
}
}