退出管道工作而不会失败

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了退出管道工作而不会失败相关的知识,希望对你有一定的参考价值。

在我的Jenkins实例中,我使用共享库。在我的第一步中,我执行完整性检查。在这个结账的开始,我检查我的reopsitory是否有变化。如果没有更改,我想退出整个管道作业而不将构建状态更改为unstable。

mainpipeline:

step('checkout'){
     performIntegrityCheckout()
}

performIntegrityCheckout:

 //PERFORM INTEGRITY CHECKOUT
 if(changes == "false"){
      //EXIT HERE
 }

我试图使用return,但这只会结束当前的关闭。有任何想法吗?

答案

您可以尝试设置环境变量,然后使用它来跳过每个阶段......

pipeline {
  agent any
  stages {
    stage('Stage 1') {
      when {
        environment name: 'CHANGES_EXIST', value: 'true'
      }
      steps {
        echo "I am running stage 1"
      }
    }
    stage('Stage 2') {
      when {
        environment name: 'CHANGES_EXIST', value: 'true'
      }
      steps {
        echo "I am running stage 2"
      }
    }
  }
  environment {
    CHANGES_EXIST = getChangesExist()
  }
}

def getChangesExist() {  
  if (<your integrity check goes here>) {
    return "true"
  } else {
    return "false"
  }
}

以上是关于退出管道工作而不会失败的主要内容,如果未能解决你的问题,请参考以下文章

从命名管道捕获非零退出代码

C++ 使用命名管道

有没有办法获取早期管道 Scala 进程 (#|) 的退出代码?

管道进入 grep -v 时获取退出代码 [重复]

在 gitlab ci 脚本功能失败时掩码退出 1

gitlab ci 管道部署 ftp 失败