Jenkinsfile Declarative Pipeline, die dynamische env vars definiert

10

Ich bin neu in der jenkins-Pipeline, ich definiere eine deklarative Syntax-Pipeline und ich weiß nicht, ob ich mein Problem lösen kann, weil ich keine Lösung finde.

In diesem Beispiel muss ich eine Variable an ansible Plugin übergeben (in der alten Version verwende ich eine ENV_VAR oder injiziere es aus der Datei mit inject plugin, diese Variable kommt von einem Skript.

Dies ist mein perfektes Szenario (aber es funktioniert nicht, weil Umgebung {}):

%Vor%

Ich habe andere Möglichkeiten ausprobiert, um zu testen, wie env vars in anderen Posts funktioniert, zum Beispiel:

%Vor%

aber "echo env.VERSION" gibt null zurück.

Auch das gleiche Beispiel versucht mit: - VERSION = python3.5 get_version.py - VERSION = python3.5 get_version.py & gt; props.file (und versuche es zu injizieren, aber nicht gefunden wie)

Wenn das nicht möglich ist, werde ich es in der ansprechbaren Rolle tun.

AKTUALISIEREN

Es gibt ein anderes "Problem" in Ansible Plugin, um Vars in Extra-Vars zu verwenden, muss es Anführungszeichen anstelle von Single haben.

%Vor%     
DEL 09.05.2017, 20:57
quelle

3 Antworten

23

Sie können Variablen erstellen, bevor der Pipeline-Block gestartet wird. Sie können sh return stdout diesen Variablen zuweisen. Sie haben nicht die Flexibilität, Umgebungsvariablen in der Zeilengruppe environment zuzuweisen. Also ersetze in python3.5 get_version.py , wo ich echo 0.0.1 im Skript habe (und vergewissere dich, dass dein Python-Skript nur die Version nach stdout zurückgibt):

%Vor%

Die Ausgabe der obigen Pipeline lautet:

%Vor%     
burnettk 10.05.2017, 00:18
quelle
3

In Jenkins 2.76 konnte ich die Lösung von @burnettk zu:

vereinfachen %Vor%     
Kevin Higgins 19.10.2017 20:16
quelle
0

Sie können auch alle Ihre vars in eine Datei schreiben und dann die '-e @file'-Syntax verwenden. Dies ist sehr nützlich, wenn Sie viele VARs zu füllen haben.

%Vor%     
krad 15.09.2017 12:05
quelle

Tags und Links