「アップストリームをブロックする」または「ダウンストリームをブロックする」の問題は、作業を行っている可能性のあるものを常にブロックしていることです。
「git」を使用すると、これらの線に沿って何かを行うことができます-これはたまたま私がやっていることです...
次のように名前が付けられた、任意のステップの最新の完了したビルドジョブを指す追跡ブランチを使用します<branch>-latest-<step>
。したがって、マスターに基づいて「ビルド」ステップを実行すると、が得られmaster-latest-build
ます。このブランチをビルドスクリプトの最後に移動するのは非常に簡単です。次のコマンドを実行git branch -f <name> HEAD
してからプッシュするだけです。
次に、その追跡ブランチからダウンストリームジョブをトリガーします。このように、すべてのジョブは緩く結合されており、アップストリームジョブが現在作業しているものに関係なく、アップストリームジョブが生成したものに対して正しいことを実行します。
それに加えて、ビルドにもタグを付けると、ダウンストリームジョブでタグを取得してビルド名として再利用できるため、さまざまな実行を簡単に関連付けることができます。
これは、パイプラインの長さが大幅に異なる場合に非常に効果的です。特に、ダウンストリームテストには一連のパフォーマンステストと統合テストが含まれるため、ダウンストリームステップがアップストリームステップよりもはるかに長い場合に効果的です。 。