Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/silverlight/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
jenkinsFile阶段的后期操作获取前一阶段状态,而不是当前阶段状态 我有以下问题: 我的管道上有两个阶段,在第一阶段我失败了(预期),然后第二阶段被称为(预期),做它需要做的事情并返回成功。 然而,在我的第二阶段的后一步中,不是走向成功,而是走向失败。 有人知道如何绕过这个吗? stage('stage 1') { step { //failure } } stage('stage 2') { step { //success } post { success { echo 'I succeeded!' } unstable { echo 'I am unstable :/' } failure { echo 'I failed :(' } changed { echo 'Things were different before...' } } }_Jenkins_Jenkins Pipeline_Jenkins Plugins_Jenkins Job Dsl_Jenkins Cli - Fatal编程技术网

jenkinsFile阶段的后期操作获取前一阶段状态,而不是当前阶段状态 我有以下问题: 我的管道上有两个阶段,在第一阶段我失败了(预期),然后第二阶段被称为(预期),做它需要做的事情并返回成功。 然而,在我的第二阶段的后一步中,不是走向成功,而是走向失败。 有人知道如何绕过这个吗? stage('stage 1') { step { //failure } } stage('stage 2') { step { //success } post { success { echo 'I succeeded!' } unstable { echo 'I am unstable :/' } failure { echo 'I failed :(' } changed { echo 'Things were different before...' } } }

jenkinsFile阶段的后期操作获取前一阶段状态,而不是当前阶段状态 我有以下问题: 我的管道上有两个阶段,在第一阶段我失败了(预期),然后第二阶段被称为(预期),做它需要做的事情并返回成功。 然而,在我的第二阶段的后一步中,不是走向成功,而是走向失败。 有人知道如何绕过这个吗? stage('stage 1') { step { //failure } } stage('stage 2') { step { //success } post { success { echo 'I succeeded!' } unstable { echo 'I am unstable :/' } failure { echo 'I failed :(' } changed { echo 'Things were different before...' } } },jenkins,jenkins-pipeline,jenkins-plugins,jenkins-job-dsl,jenkins-cli,Jenkins,Jenkins Pipeline,Jenkins Plugins,Jenkins Job Dsl,Jenkins Cli,请参见以下场景和答案: 如果在第1阶段出现故障,则将不执行第2阶段: 测试1:使阶段1失败并检查输出 pipeline { agent any stages{ stage('stage 1') { steps { echo "Hello stage 1" // deliberately failing stage 1 bat

请参见以下场景和答案: 如果在第1阶段出现故障,则将不执行第2阶段:
测试1:使阶段1失败并检查输出

pipeline {
    agent any
    
    stages{
        
        stage('stage 1') {
              steps {
          echo "Hello stage 1"
           // deliberately failing stage 1
           bat "set 1"
          
         }
         post {
        success {
            echo 'I succeeded!'
        }
        unstable {
            echo 'I am unstable :/'
        }
        failure {
            echo 'I failed :('
        }
         }
        }
        stage('stage 2') {
              steps {
          echo "stage 2"
          }
           post {
        success {
            echo 'I succeeded!'
        }
        unstable {
            echo 'I am unstable :/'
        }
        failure {
            echo 'I failed :('
        }
        changed {
            echo 'Things were different before...'
        }
    }
         }     
    }   
}
输出:由于阶段1中的故障,未执行/跳过阶段2

测试2:通过阶段1,失败阶段2并检查输出

pipeline {
    agent any
    
    stages{
        
        stage('stage 1') {
              steps {
          echo "Hello stage 1"          
         }
         post {
        success {
            echo 'I succeeded!'
        }
        unstable {
            echo 'I am unstable :/'
        }
        failure {
            echo 'I failed :('
        }
         }
        }
        stage('stage 2') {
              steps {
          // deliberately failing stage 2
         bat "set 1"
          }
           post {
        success {
            echo 'I succeeded!'
        }
        unstable {
            echo 'I am unstable :/'
        }
        failure {
            echo 'I failed :('
        }
        changed {
            echo 'Things were different before...'
        }
    }
         }       
        
    }
}

输出:阶段1通过,阶段2失败

因此,考虑到上述示例,很明显,如果第1阶段失败,第2阶段将不会执行。请将代码片段作为测试代码作为参考示例
如果您希望在第1阶段失败的情况下执行第2阶段,则应执行
returnStatus
as
true
,如下所示:
bat标签:“设置变量…”,返回状态:true,脚本:“设置1”


通过这种方式,两个阶段都会成功。

这对你有用吗谢谢你的回答,但我所描述的是我面临的问题。也许我遗漏了一些信息,失败的一步是使用publishIssues,它来自于一个插件。在任何情况下,我都能找到一个解决办法,不再使用post操作。