2016-11-04 5 views
0

私が本当に好きな新しいJenkinsパイプラインDSLを使用しています。私のJenkinsfileはおそらくかなり一般的で、mavenを使用してGITのmasterブランチのコンパイル/ユニットテストコードを実行し、ドッカーをビルドし、ステージングなどにデプロイします。パイプラインの終わりに向かって、ビルドは生産に行くJenkinsパイプラインDSLは自動的に入力を中止します

stage name: 'Production Deploy', concurrency:1 
input 'Do you want to deploy to production?' 
node { 
    sh "./bin/production-deploy.sh" 
} 

ただし、ビルドは誰かが承認/拒否するまでブロックされます。他の誰かが(masterブランチにコードをマージして)ビルドオフをキックすると、inputが自動的に拒否される方法はありますか?

+2

CDパイプラインのCIパイプラインを分離します。 CIパイプラインでは、開発ステージからステージングステージへの展開、テスト、展開、ステージング展開の検証を行い、2番目の手順では、プロダクションステージに展開するときにDCパイプラインを有効にします。あなたは独立したライフサイクルのプロセスと独立した配送プロセスを持っています。 – johnnynemonic

+0

プロジェクトごとに2つのパイプラインがあるとお考えですか?これを行うベストプラクティスの方法ですか?私は、単一のビルドパイプラインですべての段階(コンパイル - >ステージング - > QA - >その他 - >プロダクション)をしたいと思っています(本書「Continuous Delivery」http://martinfowler.com/books/continuousDelivery.htmlを読んでから)あなたの場合は – bobmarksie

+1

、はい。本の提案の場合は、プロセス全体を自動化し、一時停止や人間のやりとりがないときにうまくいってください。インフラストラクチャーに青/緑のデプロイメントを実装し、他のVMノードにプロダクションサービスが提供されている間にaVMノードでのデプロイメントを検証できます。 – johnnynemonic

答えて

0

Continuos DeliveryパイプラインのContinuosインテグレーションパイプラインを分離することをお勧めします。 CIパイプラインでは、開発段階からステージング段階に構築、テスト、展開し、ステージング展開を検証し、次のステップですべてのステージングテストがOKであればDCパイプラインを実行します。プロダクションステージに展開するときです。そうすることで、独立した生き生きとした開発プロセスと独立した配送プロセスが実現します。

関連する問題