web-dev-qa-db-ja.com

Jenkinsでどのようにスケジュールを作成しますか?

毎日特定の時間にのみビルドできるようにJenkinsビルドをスケジュールするにはどうすればよいですか?

たとえば、午後4時に開始する場合

0 16 1-7 * *

私は次のように理解しています:0分、4時PM毎月月曜日から日曜日まで、しかしそれは毎分構築されます:(

アドバイスをいただければ幸いです。ありがとう!

61
deadfish

他の回答やコメントを読んでください。この質問に答えたときにわからなかった情報やニュアンス(ハッシュ関数?)が記載されています。

スケジュールタスクに関するJenkins自身のヘルプ(「?」ボタン)によると、5つのフィールドが指定されています。

このフィールドは、cronの構文に従います(わずかな違いはあります)。具体的には、各行はTABまたは空白で区切られた5つのフィールドで構成されています:MINUTE HOUR DOM MONTH DOW

私はちょうど午後4時42分(現地時間のおおよその時間)にジョブを起動しようとしましたが、次のように動作しましたが、約30秒かかりました。

42 16 * * *

複数回必要な場合は、次のようにする必要があります:

0 16,18,20,22 * * *

4、6、8、および10時PM毎日。

95
Zachary Young

ジョブ設定では、さまざまなビルドトリガーを定義できます。定期的なビルドでは、ビルドを実行する日付または曜日と時刻を定義することにより、ビルドをスケジュールできます。

形式は次のとおりです:

分(0-59)、時間(0-23)、日(1-31)、月(1-12)、曜日(0-6)

Word Hashを表す文字Hは、値の代わりに挿入でき、プロジェクト名のハッシュコードに基づいてパラメーターを計算します。これは、複数のプロジェクトを構築している場合ビルドマシンでは、毎日午前0時に、ビルドの実行がすべて同時に開始されるわけではなく、各プロジェクトはハッシュコードに応じて異なる分に実行を開始します。値を数値の間に指定することもできます。つまり、H(0,30)は、可能なハッシュが0〜30であるプロジェクトのハッシュコードを返します。

例:

月曜日から金曜日の午前8時30分にビルドを毎日開始する:

  • 30 08 * * 1-5

平日デイリービルド、1日2回、ランチタイム12:00および深夜00:00、日曜日から木曜日:

  • 00 0,12 * * 0-4

毎日午後4時から午後4時にビルドを開始します。 -午後4時59分またはプロジェクトのハッシュに応じて16:00 -16:59:

  • H 16 * * 1-5

深夜にビルドを開始:

  • @深夜

または毎週土曜日の深夜にビルドを開始:

  • 59 23 * * 6

毎月1日午前2時から午前2時30分まで:

  • H(0-30)02 01 * *

CRON式の詳細

72
Merav Kochavi

この例は毎日で、午前9時頃と午後5時頃です。 (コメントごとに編集)。

H 9,17 * * * 
11
captainhero70

たとえば午後4時から午後6時までの間に1日に1回ビルドするには、

H H(15-17) * * *

4
primeFactor

cron式 のように見えます。サンプルは、毎月1日から7日の16:00にのみビルドされることに注意してください。他の何らかのエラーが発生している可能性があります。または、Jenkinsは非標準のCRON式を使用しています。

2
Yann Ramin

Jenkinsは Cron Expressions を使用します。

次のように入力するだけで、1時間ごとのビルドをスケジュールできます。

@hourly

1
H H(5-21)/2 * * 1-5

MON-FRIは2時間ごとにビルドします

1
user176867

Jenkinsでは、フォーマットは次のとおりです。

分(0-59)時間(0-23)日(1-7)月(1-12)曜日

1
LivCool