Kann die Jenkins-String-Parametervariable nicht ändern

8

Ich habe Jenkins String Parameter $ {EMAIL_ID}, wo der Benutzer seine E-Mail-ID eingeben kann. (Sagen wir, sie haben [email protected]

eingegeben

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.

%Vor%

Wenn ich diese Variable im nächsten Execute Shell verwende es gibt [email protected]

zurück

Ich muss [email protected]

drucken     
logan 24.02.2014, 15:25
quelle

2 Antworten

9

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:

  • param = neuer_Wert (in Unix)
  • setze param = neuer_wert (in Windows)

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.

    
Slav 13.03.2014 19:49
quelle
0

Sie sollten auf die Jenkins-Umgebungsvariable wie folgt in Ihrem Batch-Skript zugreifen:% EMAIL_ID%

    
NotAgain 24.02.2014 22:53
quelle

Tags und Links