0

ビルド チェーンのビルド プランに問題があり、本当に気になります。

私は単純なビルドチェーンを持っていA -> Bます

  • A は非常に高速 (1 分未満) です。基本的には、運用システムからデータベースを取得します。処理が完了する前に、結果のアーティファクトが前の結果と同一になるかどうかを判断する方法はありません。現在、予定されている時間にビルドします。
  • B は非常に時間がかかります (5 ~ 6 時間)。A からの出力と他の多くのソースを組み合わせて多数のアーティファクトを作成します。現在、A に対するスナップショットの依存関係と、他のソースに対する依存関係があります。

必要でない限り (つまり、B への入力のいずれかが変更された場合)、B を実行することは避けたいのですが、どうすればよいでしょうか?

結果が変更されていないことが検出された場合、A を失敗/キャンセルできますが、B の「スナップショット依存関係の失敗」が発生するため、B への他の入力ソースが変更された場合、結果は再構築されません...

B のビルドがトリガーされないように、A のビルドを停止または中止する方法はありますか?

編集:私は(かもしれない)考えを持っています:私はAにSCMで結果のアーティファクトをチェックさせることができます-それが以前のバージョンと異なる場合-そしてこれがBのトリガーを駆動できるようにします-これはすでに他の多くのソースに他のソースを持っていますSCM。私が見る限り、同じビルドチェーンの一部ではありませんが、次善の策です...

4

2 に答える 2

0

Aの新しい潜在的なビルドが最近のもののいくつかと同一になる場合は、Aの再構築をスキップして最近のものを使用する必要があると思います. たとえば、同じ VCS リビジョンと同じ設定で依存ビルド A を要求しても、ビルドが再度トリガーされることはありません。

于 2015-09-29T17:46:03.543 に答える