it-swarm.com.de

Wie planen Sie das Bauen in Jenkins?

Wie plane ich einen Jenkins-Build so, dass er jeden Tag nur zu bestimmten Stunden erstellt werden kann?

Zum Beispiel um 16 Uhr

0 16 1-7 * *

Ich verstehe das als: 0 Minuten, um 4 Uhr PM von Montag bis Sonntag jeden Monat, aber es baut jede Minute :(

Für jeden Rat wäre ich dankbar. Vielen Dank!

61
deadfish

Bitte lesen Sie die anderen Antworten und Kommentare. Es werden viel mehr Informationen und Nuancen beschrieben (Hash-Funktionen?), Die ich nicht kannte, als ich diese Frage beantwortete.

Gemäß Jenkins eigener Hilfe (der Schaltfläche "?") Für die Zeitplanaufgabe werden 5 Felder angegeben:

Dieses Feld folgt der Syntax von cron (mit geringfügigen Unterschieden). Insbesondere besteht jede Zeile aus 5 durch TAB oder Leerzeichen getrennten Feldern: MINUTE HOUR DOM MONTH DOW

Ich habe gerade versucht, einen Job für den Start um 16:42 Uhr (meiner ungefähren Ortszeit) zu bekommen, und es hat mit den folgenden Ergebnissen funktioniert, obwohl es ungefähr 30 zusätzliche Sekunden gedauert hat:

42 16 * * *

Wenn Sie mehrmals möchten, sollte meines Erachtens Folgendes funktionieren:

0 16,18,20,22 * * *

für 4, 6, 8 und 10 Uhr PM jeden Tag.

95
Zachary Young

In der Job-Konfiguration kann man verschiedene Build-Trigger definieren. Bei der periodischen Erstellung können Sie die Erstellung planen, indem Sie das Datum oder den Wochentag und die Uhrzeit für die Ausführung der Erstellung definieren.

Das Format ist wie folgt:

MINUTE (0-59), STUNDE (0-23), TAG (1-31), MONAT (1-12), TAG DER WOCHE (0-6)

Der Buchstabe H, der das Wort Hash darstellt, kann anstelle eines beliebigen Wertes eingefügt werden. Er berechnet den Parameter basierend auf dem Hash-Code Ihres Projektnamens. Dies ist der Fall, wenn Sie mehrere Projekte in Ihrem Build erstellen Maschine zur gleichen Zeit, sagen wir, jeden Tag um Mitternacht, sie starten nicht alle die Build-Ausführung zur gleichen Zeit, jedes Projekt startet seine Ausführung zu einer anderen Minute, abhängig von seinem Hash-Code. Sie können auch den Wert angeben, der zwischen Zahlen liegen soll, d. H. H (0,30) gibt den Hash-Code des Projekts zurück, wobei die möglichen Hashes 0-30 sind

Beispiele:

Baubeginn ist Montag - Freitag täglich um 08:30 Uhr:

  • 30 08 * * 1-5

Wochentags täglich zweimal täglich, mittags 12:00 Uhr und Mitternacht 00:00 Uhr, Sonntag bis Donnerstag:

  • 00 0,12 * * 0-4

Baubeginn ist täglich am späten Nachmittag zwischen 16:00 Uhr und 22:00 Uhr. - 16:59 oder 16:00 -16: 59 je nach projekt hash:

  • H 16 * * 1-5

Baubeginn um Mitternacht:

  • @Mitternacht

oder beginnen jeden Samstag um Mitternacht mit dem Bau:

  • 59 23 * * 6

jeden ersten Tag im Monat zwischen 2:00 und 02:30 Uhr:

  • H (0-30) 02 01 * *

mehr zu CRON-Ausdrücken

72
Merav Kochavi

Dieses Beispiel ist täglich, einmal um 9 Uhr und einmal um 17 Uhr. (bearbeitet per Kommentare).

H 9,17 * * * 
11
captainhero70

Um einmal am Tag zwischen 16 und 18 Uhr zu bauen, können Sie verwenden

H H(15-17) * * *

4
primeFactor

Das scheint ein Cron-Ausdruck zu sein. Beachten Sie, dass Ihr Beispiel nur am ersten bis siebten eines jeden Monats um 16:00 Uhr erstellt wird. Möglicherweise liegt ein anderer Fehler vor, oder Jenkins verwendet nicht standardmäßige CRON-Ausdrücke.

2
Yann Ramin

Jenkins benutzt Cron Expressions .

Sie können einfach stündliche Builds planen, indem Sie Folgendes eingeben:

@stündlich

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

MO-FR alle 2 Stunden zwischen bauen

1
user176867

In Jenkins haben wir das Format wie folgt:

Minute (0-59) Stunde (0-23) Tag (1-7) Monat (1-12) Wochentag

1
LivCool