Ich mache eine einfache Pipeline:
Erstellen - & gt; Inszenierung - & gt; Produktion
Ich brauche verschiedene Umgebungsvariablen für die Bereitstellung und Produktion, also versuche ich Quelle Variablen.
%Vor%Aber es gibt nicht gefunden
zurück %Vor%Der Pfad ist richtig, weil ich den gleichen Befehl ausführe, wenn ich über ssh logge, und es funktioniert gut.
Hier ist die Pipeline-Idee:
%Vor%Was soll ich tun?
Eine Möglichkeit zum Laden von Umgebungsvariablen aus einer Datei ist das Laden einer Groovy-Datei.
Zum Beispiel:
Innerhalb dieser Datei definieren Sie 2 Umgebungsvariablen, die Sie laden möchten
%Vor%Sie können das dann mit
laden %Vor%Dann können Sie sie in nachfolgenden Echo / Shell-Schritten verwenden.
Hier ist zum Beispiel ein kurzes Pipelineskript:
%Vor%Von den Kommentaren zur akzeptierten Antwort
Verwenden Sie nicht das globale 'env', sondern verwenden Sie das Konstrukt 'withEnv', zB: Problem Nr. 9: Legen Sie in den Top-10-Best Practices keine env vars mit globalem env fest jenkins pipeline plugin
Im folgenden Beispiel: VAR1 ist eine einfache Java-Zeichenfolge (keine groovige Variablenerweiterung), VAR2 ist eine groovige Zeichenfolge (also die Variable 'someGroovyVar' wird erweitert).
Das übergebene Skript ist eine einfache Java-Zeichenfolge, daher werden $ VAR1 und $ VAR2 wörtlich an die Shell übergeben, und die Echos greifen auf die Umgebungsvariablen VAR1 und VAR2 zu.
%Vor%Für Secrets / Passwörter können Sie Credentials Binding Plugin
verwendenBeispiel:
HINWEIS: CREDENTIALS_ID1 ist ein registrierter Benutzername / Passwort für die Jenkins-Einstellungen.
%Vor%Die jenkisn-Konsolenprotokollausgabe blendet die echten Werte aus:
%Vor%Jenkins und Anmeldeinformationen ist ein großes Problem, wahrscheinlich zu sehen: Anmeldeinformationen Plugin
Der Vollständigkeit halber: Die meiste Zeit benötigen wir die Secrets in Umgebungsvariablen, da wir sie aus Shell-Skripten verwenden. Daher kombinieren wir die withCredentials und withEnv wie folgt:
%Vor%Tags und Links jenkins jenkins-pipeline environment-variables