2

1 つのサーバーを使用して、同じプロジェクトを継続的かつ夜間にビルドしています。ただし、夜間のビルドは、日中に変更があった場合にのみビルドしたいと考えています。両方のビルドが同じ作業フォルダーを使用するという制約でこれを達成したいと考えています。

私が検討している2つのオプションは次のとおりです。

  1. 継続的なビルドをポーリングし、継続的なビルドが発生した場合にのみナイトリー ビルドをビルドします - おそらく何らかのトークン システムを使用します (継続的なビルドはトークンを設定し、ナイトリーはトークンをクリアします)。

  2. ビルド前のタスクを実行して、ソース コードを最終ビルド時刻に戻す

ビルド スクリプトを分離するため、私は 2 番目のオプションに傾いていますが、それははるかに難しい作業のようです。

これを行うための提案とヒントをいただければ幸いです。

追加情報:

CI ビルドは、1 つの構成でのソリューションのクイック ビルドであり、いくつかの高速単体テストを実行する場合があります。

ナイトリー ビルドは、ビルド環境をクリーンアップし、ソフトウェアをビルドし、インストーラーにパッケージ化し、拡張テストを実行し、ソース コード リポジトリにラベルを付け、手動テスターが取得できるようにサーバー共有にインストーラーを展開し、テスト可能なビルドをテスト チームに電子メールで送信します。作られました。

テスターが本質的に同じビルドの繰り返しの電子メールに悩まされないように、日中にチェックインがあった場合にのみ夜間ビルドを実行したいと考えています。

4

2 に答える 2

3

このタスクを単純化しすぎているかもしれませんが、プロジェクトに 2 つのトリガーを設定するだけで済みませんか? 連続ビルド用の 1 つの間隔トリガーと、夜間ビルド用の IfModificationExists 条件による 1 つのスケジュール トリガー。

<triggers>
  <intervalTrigger seconds="60" name="Continuous" />
  <scheduleTrigger time="23:30" buildCondition="IfModificationExists" name="Scheduled">
      <weekDays>
        <weekDay>Monday</weekDay>
      </weekDays>
  </scheduleTrigger>
</triggers>
于 2009-07-30T12:52:50.603 に答える
1

新しいソリューションに満足しています...

この質問のように、夜間のビルド (フル ビルドを呼び出す方がよい) と WriteModification/ReadModification のペアで scheduleTrigger と prjectTrigger を使用して MultiTrigger を使用し、変更履歴を伝達します。

于 2009-08-20T21:15:22.247 に答える