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% 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):
Die Ausgabe der obigen Pipeline lautet:
%Vor%In Jenkins 2.76 konnte ich die Lösung von @burnettk zu:
vereinfachen %Vor%Tags und Links jenkins jenkins-pipeline