Ich habe Jenkins String Parameter $ {EMAIL_ID}, wo der Benutzer seine E-Mail-ID eingeben kann. (Sagen wir, sie haben [email protected]
Aber in der Mitte des Prozesses möchte ich es auf einen Wert ändern, den ich in der Konfiguration wie folgt in Execute Shell
festlege.
Wenn ich diese Variable im nächsten Execute Shell
verwende
es gibt [email protected]
Ich muss [email protected]
Jede " Shell ausführen " oder ein anderer Build-Schritt initiiert eine neue und separate Umgebung. Diese neue Umgebung erbt eine Kopie der tatsächlichen Umgebungsvariablen und aller Build-Parameter, die für den Job definiert sind, erkennt jedoch, dass sie Kopien / vererbt sind.
Sie können den Wert einer Umgebungsvariablen einfach ändern:
Diese Änderung wird jedoch lokal zu der Instanz des "execute shell" -Schritts sein. Sie können die Änderung sehen, wenn Sie diese Variable innerhalb des gleichen "execute shell" Schrittes wiederholen, aber in der nächsten "execute shell" erhalten Sie eine neue Kopie (mit Originalwert).
Um Ihre geänderte Variable zwischen Build-Schritten (oder zwischen Jobs) beizubehalten, müssen Sie sie während des ersten Schritts speichern und während des nächsten Schritts laden. Am einfachsten ist es, den Wert in eine Datei auszugeben:
echo param=$param > temp.props
Und dann lesen Sie diese Datei in den zweiten Schritt "execute shell" mit EnvInject-Plugin (beachten Sie, Sie Sie müssen den EnvInject Build-Schritt zwischen Ihren zwei vorhandenen "execute shell" Schritten konfigurieren.