2011-12-15 8 views
3

継続的な統合環境としてCC.NETがあります。 CCはすべてGitからコミットし、ビルドしてサーバーに公開します。CruiseControl.NET - 特定の時刻に1日に1回ビルドを公開する方法

これはconfigです:

 <buildpublisher 
      <sourceDir>Path_to_dir_with_source</sourceDir> 
      <publishDir>path_to_deploy</publishDir> 
      <cleanPublishDirPriorToCopy>true</cleanPublishDirPriorToCopy> 
      <useLabelSubDirectory>false</useLabelSubDirectory> 
      <alwaysPublish>true</alwaysPublish> 
     </buildpublisher> 

しかし、私たちのQAのengeneerは毎朝構築する "新鮮" を取得したいと考え、一日ではない20回:)

誰がCCでこれを作る方法を知っています。ネット?

[UPDATE]

我々はまだコミットごとを構築する必要がありますが、ScheduleTriggerブロックを使用して一日に一回だけ、これはWebサーバにコミット

+0

ます。http: //www.cruisecontrolnet.org/projects/ccnet/wiki/Schedule_Trigger –

答えて

6

を置く:

<scheduleTrigger time="23:30" buildCondition="ForceBuild" name="Scheduled"> 
    <weekDays> 
    <weekDay>Monday</weekDay> 
    </weekDays> 
</scheduleTrigger> 

ますまた、cronTriggerまたはintervalTriggerを使用することもできますが、あなたのケースでは、scheduleTriggerは最もシンプルなようです。

http://www.cruisecontrolnet.org/projects/ccnet/wiki/Trigger_Blocks

追加したコメントに対処するために:あなたは1つのプロジェクトブロック内に複数のトリガーを持つことができます

を。

スケジュールトリガーと同様に、私たちには間隔トリガーがあります。必要な数のトリガーを持つことができます。

ビルドを別々にしたい場合は、スケジュールトリガーで動作するプロジェクトブロックと、ある間隔で動作するものの、リスクがあり、設定が必要な計画されている。以下は、潜在的な考慮事項として頭に浮かぶ:

  1. あなたがこれを行う場合は、異なるディレクトリにソースコードをチェックアウトする、またはその両方が同時に実行されている場合は、競合に実行できることを確認してください。
  2. ソースコードチェックアウトが異なるディレクトリであっても、は、の両方のプロジェクトが同じ出力場所にパブリッシュされている場合に競合することがあります。
+0

回答ありがとうございました。私の質問に1つの更新を加えました。それはあなたの答えに何か変わるのですか? –

+0

@Evgeniy Labunskiy - コメントが長すぎるため、回答が更新されました。 – David

+1

ありがとう!私は2つのプロジェクトを作った - 1つは新しいコミットをビルドし、2つ目はビルドして公開する –

0

以下は朝の5時にすべての作業日のビルドを実行します。すなわちあなたは、特定の時間にプロジェクトのビルドを強制的にスケジュールトリガーを追加することができます。

<triggers> 
     <scheduleTrigger time="05:00" buildCondition="ForceBuild"> 
     <weekDays> 
      <weekDay>Monday</weekDay> 
      <weekDay>Tuesday</weekDay> 
      <weekDay>Wednesday</weekDay> 
      <weekDay>Thursday</weekDay> 
      <weekDay>Friday</weekDay> 
     </weekDays> 
     </scheduleTrigger> 
    </triggers> 
+0

答えをいただきありがとうございます。それはあなたの答えに何か変わるのですか? –

関連する問題