Ich habe einen Pipeline-Job, der eine Vorlagendatei (z. B. eine XML-Datei) behandelt und einige Variablen aus der Datei mit Jobparametern ersetzen muss, bevor die gerenderte Datei verwendet wird, aber ich kann nicht scheinbar nichts sauberes zu tun, für jetzt benutze ich nur Shell-Skript und sed, um jede Variable einzeln zu ersetzen. HierJenkins-Pipeline: Templating eine Datei mit Variablen
ist ein Beispiel XML-Vorlagendatei:
<?xml version='1.0' encoding='UTF-8'?>
<rootNode>
<properties>
<property1>${property1}</property1>
<property2>${property2}</property2>
<property3>${property3}</property3>
</properties>
</rootNode>
Ich möchte die „Variablen“ in meiner Vorlagendatei ersetzt werden mit meinem Job-Parameter $property1
, $property2
und $property3
. Hier ist, was ich heute tun:
sh "sed -i 's/@[email protected]/${property1}/' '${templateFile}'" +
"sed -i 's/@[email protected]/${property2}/' '${templateFile}'" +
"sed -i 's/@[email protected]/${property3}/' '${templateFile}'"
... aber ich finde es ziemlich hässlich ... gibt es etwas in Jenkins für Dateien Templating wie was Jinja2 (oder einer Templat-Framework) tun würde?
Haben Sie versucht, das '$' so zu umgehen: 'echo $ {'$'} VAR'? – jayhendren