2016-05-18 7 views
0

Mavenを使って大きなプロジェクトを構築するJenkinsビルドパイプラインをセットアップしました。アップデート、コンパイル、ユニットテスト、デプロイ(Nexusへのステージング)などのプロジェクトをビルドしました。 「Nexusへのデプロイ」ステージでは同時実行性が1になり、任意の時点でこのステージに複数のビルドが存在しないことが保証されます。ただし、この設定では、古いビルドが後でビルドを完了した後にそのステージに入るのを防ぐことはできません。古いビルドが同時実行可能なステージに入るのを防ぐ方法

たとえば、ビルド#2がビルド#1の後に起動し、高速ノードにヒットした場合、ビルド#1を上回り、「deploy to Nexus」ステージに入ることがあります。ビルド#1はこの段階に同時に入ることができないので、ビルド#2が終了するまで待機します。ビルド#1はこの段階に入り、後のビルドでデプロイされたMaven成果物をオーバーライドします。これはあなたが望むものではありません。

古いビルドが後でビルドによって既に正常に実行されたステージに入るのを防ぐ方法が必要です。私はちょうどこの問題の解決策を見つけることができませんでした...どんな考えですか?

答えて

1

upcomingmilestoneの手順がこれを解決するはずです。

0

ジョブの現在のビルド番号を送信し、次のジェンキンスのURLを使用してジョブの最新の成功したビルド番号でそれをテストするために、単純な条件を追加します。

http://JenkinsMaster:Port/job/MyJob/lastSuccessfulBuild/buildNumber

現在のビルド番号がある場合最後に成功したものよりも小さい場合、アップロードをスキップします。

Good Luck!

関連する問題