web-dev-qa-db-ja.com

入力に基づくJenkins継続的デリバリーパイプラインスキップステージ

簡略化されたパイプラインは次のようになります。

 1. build
 2. unit test
 3. deploy to dev
 4. integration tests
 5. deploy to prod

ステップ5では、Jenkinsパイプライン入力コマンドを設定しました。すべてのコミットでprodにデプロイするわけではないため、これらのジョブをすべて中止すると、灰色のビルドの大きなリストが作成されます。ビルドを次のように表示できるようにスキップオプションを設定することは可能ですか?  青い?

5
lucas

このようなことはできません。入力から選択したものはすべて青/緑になり、それに応じて展開を実行できますか?

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

if(deployToProduction){
    println "Deploying to production"
}
2
MaTePe

私が見つけたより良い解決策があります。戻り値を使用するなどして、入力の結果にアクセスできます。オプションのステージを実行するには、ユーザーはチェックボックスをオンにする必要があります。それ以外の場合、ステージのステップはスキップされます。ステージ全体をスキップすると、ステージが消え、ステージビューの履歴が「クリーン」になります。

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"
    }
}
4
Matthias B

どうですか:

stage('Deploy') {
  when { branch 'master' }
    steps {
      sh '...'
    }
  }
}

ステージは他のブランチでのコミットのためにスキップされ、緑色になります。

1
Wojciechem