相关疑难解决方法(0)

将Jenkins管道阶段显示为失败而不会使整个作业失败

这是我正在玩的代码

node {
    stage 'build'
    echo 'build'

    stage 'tests'
    echo 'tests'

    stage 'end-to-end-tests'
    def e2e = build job:'end-to-end-tests', propagate: false
    result = e2e.result
    if (result.equals("SUCCESS")) {
        stage 'deploy'
        build 'deploy'
    } else {
        ?????? I want to just fail this stage
    }
}
Run Code Online (Sandbox Code Playgroud)

有没有办法让我将"端到端测试"阶段标记为失败,而不会使整个工作失败?传播假只是总是将舞台标记为真,这不是我想要的,但传播真实标志着失败的工作,我也不想要.

groovy jenkins jenkins-workflow jenkins-pipeline

48
推荐指数
5
解决办法
7万
查看次数

如何继续使用Jenkins声明性管道语法中的失败阶段

我想在Jenkins声明性管道语法中定义多个阶段,这些阶段可以继续通过它们中的任何一个失败.我找不到任何真正重复的现有问题,因为它们都假定或允许脚本化语法.

pipeline {
    agent any
    stages {
        stage('stage 1') {
            steps {
                echo "I need to run every time"
            }
        }
        stage('stage 2') {
            steps {
                echo "I need to run every time, even if stage 1 fails"
            }
        }
        stage('stage 3') {
            steps {
                echo "Bonus points if the solution is robust enough to allow me to continue *or* be halted based on previous stage status"
            }
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

为了澄清,我不是在寻找如何在脚本语法中完成此任务.我试图理解这种流控制是否实际上是在声明性语法中支持和形式化的.为此,我将尝试准确定义我正在寻找的内容:

需要

  • 没有尝试/捕获.我不想下载到脚本模式,或者在另一个共享库或脚本块中"包装"我的声明性管道.
  • 没有post step恶作剧.我想要真正的多个阶段,而不是一个post always …

jenkins jenkins-pipeline jenkins-declarative-pipeline

11
推荐指数
2
解决办法
1万
查看次数

基于声明性管道中前一阶段结果的条件执行

我的管道设置如下。 在此处输入图片说明

我需要让它在遵守以下条件的情况下工作。帮助我定义何时使用块和其他代码以及在哪个阶段使用?

  1. 如果 A 失败,则不会执行其他阶段,并且作业运行被标记为失败。
  2. 如果任何 B 阶段失败,则不应调用相应的 C 阶段。
  3. 当 C1 或 C2 被执行时,阶段 D 应该被执行,而不管它们的执行是否失败。
  4. 此外,如果任何阶段失败,则整个作业运行状态应为失败。

我尝试并观察到了什么? 从上面定义的条件来看,1 和 2 按预期工作,但在我的以下尝试中没有 3 和 4。

在C1和C2,我加了catchError(buildResult: 'SUCCESS', stageResult: 'FAILURE')继续詹金斯管道失败过舞台

但我观察到的是——

  1. 如果 C1 或 C2 失败,则 D 执行,但所有作业运行都标记为成功。预期是失败,因为其中一个 C 步骤失败了。但由于捕获它获得成功状态。
  2. 当任何 B 阶段失败时,它们对应的 C 也不会执行(预期),但也不会触发 D。因为我需要触发 D,因为已经执行了其他一些 C。

jenkins-pipeline jenkins-declarative-pipeline

3
推荐指数
1
解决办法
3062
查看次数