2013-05-29 14 views

Antwort

4

Wenn Build-Trigger einen Build starten verwendet werden, gibt es keine Möglichkeit Parameter zu übergeben. Da der Job parametrisiert ist, wird der Auto-Start-Job mit den Standardparametern ausgeführt.

Wenn dies gut genug ist, können Sie einfach den gewünschten Zeitplan über den Abschnitt "Auslöser erstellen" auf der Seite für die Jobkonfiguration festlegen. Dann wählen Sie das Kontrollkästchen "In regelmäßigen Abständen erstellen" und fügen die entsprechenden Werte hinzu (unter Verwendung der Syntax von Cron). Lassen Sie die Standardparameter wirksam werden.

Sie könnten jedoch als Trigger jenkins POST und übergeben Sie die genauen Werte, die Sie wünschen. Sie müssten dann CRON direkt dafür mit einem Shell-Skript wahrscheinlich verwenden, damit Sie die Parameterwerte festlegen können.

Zum Beispiel

http://example.com/jenkins/job/this_job/buildWithParameters?PARAMETER=Value

21

Mindestens zwei Möglichkeiten, dies zu umgehen,
aber Sie haben die gewünschten Werte im Voraus wissen:

  • Stellen Sie die Standardwerte des Job was Sie brauchen,
    dann planen Sie es zu laufen, wann immer Sie möchten.

  • Anstatt den parametrisierte Job Scheduling,
    erstellen Sie einen anderen Job, der die
    parametrisierte Auftrag wird ausgelöst, wenn die entsprechenden
    Werte an die Parameter übergeben
    (Auf diese Weise können auch Sie das Ziel-Job
    initiieren mit verschiedenen Sätzen von Werten).

EDIT:

Diese dritte Methode ermöglicht es Ihnen, die Werte des Parameters nach Bedarf zu aktualisieren:

  • den Job einstellen Werte des Parameters aus einer Konfigurationsdatei lesen
    (über die EnvInject Plugin), aktualisieren Sie dann den Inhalt dieser Konfigurationsdatei
    , bevor Sie den Job ausführen.

Hinweis wird es schlecht-Praxis sein, diese Datei vor jedem Lauf zu ändern,
, da es bessere Möglichkeiten gibt, automatisch mit den Parametern Jenkins-Jobs zu starten.

+0

Hey @gonen, Das könnte albern sein, aber wie stellen wir die Standardwerte des Jobs ein? – Maulzey

+4

@Maulzey, jeder Parameter in einem Jenkins-Job hat einen Standardwert - den Inhalt eines Textfelds, den Status eines Kontrollkästchens (gesetzt oder nicht gesetzt), den ersten Eintrag einer Dropbox und so weiter. Wenn nicht sicher, sind die Standardwerte diejenigen, die Sie sehen, wenn Sie "Jetzt erstellen" auswählen. – Gonen

+0

TY! Habe es sortiert: D – Maulzey

4

Aufbauend auf Gönens Antwort ein wenig, können Sie die Build Flow Plugin verwenden, um dies ein bisschen einfacher auf sich selbst zu machen. Erstellen Sie nach der Installation einen neuen Job und legen Sie den Typ auf "Build Flow" fest. Konfigurieren Sie diesen Job so, dass er zur gewünschten geplanten Zeit ausgeführt wird.In der „Define Flow Build mit Strömungs DSL“ für diesen Job, geben Sie den Job (s) Sie wollen bauen: kann

build("Job You Want Built", param1:"whatever", Param2:"whatever") 

Sie mehr Arbeitsplätze, indem mehr Linien gebaut werden angeben, oder wiederholen Sie die gleiche Zeile und ändern Sie die Parameter, um den Job mehr als einmal mit verschiedenen Parametern zu erstellen.

Sobald Sie fertig sind, wird der Build Flow-Job zur geplanten Zeit ausgeführt und die gewünschten Jobs mit den angegebenen Parametern gestartet.

4

Die Jenkins-Crontab ermöglicht die zeitgesteuerte Verarbeitung eines Jobs zu einem bestimmten Zeitpunkt, lässt aber noch keine Parameter zu.

Jedoch gibt es this Jenkins feature request, um es zu erweitern, um Parameter zu übergeben. Einmal verfügbar, würde es Ihnen erlauben, das zu tun, was Sie wollen, ohne dass Sie zusätzliche Jenkins-Jobs erstellen müssen, wie einige der anderen Antworten nahelegen.

Sie können abstimmen, dass diese Funktion früher in Jenkins enthalten ist, wenn es Ihnen hilft.

+0

Dies liefert keine Antwort auf die Frage. Um einen Autor zu kritisieren oder um Klärung zu bitten, hinterlasse einen Kommentar unter seinem Beitrag. - [Aus Bewertung] (/ review/low-quality-posts/11190984) – Prune

+1

@Prune Das Feature, mit dem ich verlinkt habe, wird tun, was der Autor einmal implementiert hat, also dachte ich, es sei hilfreich und relevant für andere zu wissen, dass es existiert. Ich habe meine Antwort umformuliert, um das klarer zu machen. –

+1

Der operative Satz ist "einmal implementiert". Ja, das ist hilfreich und relevant: Als Kommentar würde ich es ablehnen. – Prune

3

Sie können die Parameter Scheduler Plugin

Es ermöglichen Sie, Parameter nach dem chronologischen Zeitplan angeben, zum Beispiel:

H(0-29)/10 * * * * % name=value; othername=othervalue 

Der Name Wert-Paare nach dem% als Parameter interpretiert.