詹金斯基于输入的连续交付管道跳过阶段

luc*_*cas 5 continuous-deployment jenkins jenkins-pipeline

简化的管道如下所示:

 1. build
 2. unit test
 3. deploy to dev
 4. integration tests
 5. deploy to prod
Run Code Online (Sandbox Code Playgroud)

对于步骤5,我设置了Jenkins管道输入命令。我们不会在每次提交时都将产品部署到产品上,因此,如果我们中止所有这些工作,它将有大量的灰色版本。是否可以使用跳过选项,以使构建仍可以显示为绿色蓝色?

Mat*_*s B 6

我刚刚找到了一个更好的解决方案。您可以使用返回值来访问输入的结果。用户必须选中复选框才能运行可选阶段。否则跳过阶段的步骤。如果您跳过整个舞台,舞台将消失并“清除”舞台视图历史记录。

stage('do optional stuff?') {
    userInput = input(
        id: 'userInput', message: "Some important question?", parameters: [
        booleanParam(defaultValue: false, description: 'really?', name: 'myValue')
    ])
}

stage('optional: do magic') {
    if (userInput) {
        echo "do magic"
    } else {
        // do what ever you want when skipping this build
        currentBuild.result = "UNSTABLE"
    }
}
Run Code Online (Sandbox Code Playgroud)


MaT*_*ePe 2

你不能做这样的事情吗,无论你从输入中选择什么,它都会是蓝色/绿色,然后你也可以根据它来运行部署?

def deployToProduction = true
try{
  input 'Deploy to Production'
}catch(e){
   deployToProduction = false
}

if(deployToProduction){
    println "Deploying to production"
}
Run Code Online (Sandbox Code Playgroud)