2

私のセットアップは、TeamCity が別のプロジェクトの成功したビルドでビルドを開始するようなものです。

これはうまく機能しますが、上記が日中の特定のウィンドウでのみ発生するように制約する必要があります。

つまり、プロジェクト X のビルドが成功したときに Y のビルドを開始しますが、9 時から 5 時の間だけです。

私が知る限り、これを達成するために 2 つのビルド トリガーをANDまたはORすることはできません。誰もこれを回避する方法を知っていますか?

どうもありがとう

4

2 に答える 2

1

ジャスティンのコメントに対処するには: 私の理解では、指定された時間枠の外でプロジェクト Y のビルドをスキップしたいということです。

次のソリューションを提供できます。

  • 補助ビルド Z を作成します。
    • ビルド手順。1 つのビルド ステップ: コマンド ライン ランナー。スクリプトは現在の時刻をチェックし、時刻が 9 ~ 5 の場合はエラー レベル = 0 を返し、それ以外の場合は別のエラー レベルを返します。
    • ビルドの失敗条件。ビルド プロセスの終了コードが 0 でない場合に失敗するようにしました。
    • トリガーを構築します。ビルド X の成功によってトリガーされます。
  • X ではなくビルド Z の成功によってビルド Y がトリガーされるように変更します。

これでうまくいきます。

ただし、Z のビルド構成を費やす必要があります。これは、TeamCity の Professional Edition を使用している場合、ビルド構成が 20 に制限されている場合に問題になる可能性があります。同じビルドステップを Y に追加することで、ビルド Z を作成せずに行うこともできますが、それがあなたのニーズを満たすかどうかはわかりません。欠点は、プロジェクト Y が適切なタイミングではなかったという理由だけで多くのビルドが失敗する原因となることです。それでも、ビルド Y の残りの手順を回避することで、CPU リソースを節約できます (リソースの節約を達成しようとしている場合)。

于 2013-03-26T16:24:12.697 に答える