2012-04-04 4 views
4

Für meinen Jenkins-Job habe ich einen Umgebungsparameter eingerichtet, der meinem Buildskript mitteilt, welche Konfiguration verwendet werden soll. Ich habe auch Slave-Knoten in jeder meiner Umgebungen zum Erstellen und Bereitstellen meiner Anwendung ausgeführt.Wie beschriften, um Build zu Slave-Knoten zu beschränken, um mithilfe parametrisierter Build zu verwenden

ich versucht habe, verwendet die „beschränken, in denen das Projekt ausgeführt werden kann“ mit dem Wert

buildnode-${ENV} 

wo ENV der Name meines Parameter ist. Dies scheint nicht zu funktionieren, da Label keine Substitution durchführt.

Ich habe auch versucht, die NodeLabel Plugin, die mir erlaubt, zu definieren, welche Knoten den Job ausführen. Dies wird jedoch zwei getrennte Auswahlen zu erstellen:

enter image description here

Gibt es eine Möglichkeit, diese beide zusammen zu binden, so dass, wenn ich QA Umgebung auswählen, zum Beispiel, ist der Slave-Knoten für den QA-Server wählen, die ausgeführt werden bauen?

Antwort

3

können Sie versuchen, die folgende Behelfslösung: haben zwei Builds - A und B. Ein wird die Umgebung einrichten, speichern Sie es in einer Datei und übergeben Sie die Datei als Parameter zum Erstellen B zusammen mit dem Namen des Knotens, auf dem ausgeführt werden soll (die Parameter werden über Parameterized Trigger plugin übergeben). B liest die Umgebung (über EnvInject plugin) und führt den Build auf dem Knoten aus, der als anderer Parameter übergeben wurde (Sie müssen das NodeLabel-Plugin verwenden).

+0

Danke, ich werde das versuchen. Oder vielleicht sollte ich einfach lernen, wie man ein Jenkins-Plugin entwickelt und es selbst macht ... – ltfishie

+0

http://michael-prokop.at/blog/2014/03/01/jenkins-on-demand-slave-selection-through -labels/dieser Typ hat dasselbe Problem mit eleganter Lösung – montells

Verwandte Themen