Ich verwende das Jenkins-Plugin EnvInject, um eine Umgebungsvariable während eines Build-Schritts in unserer Bereitstellungspipeline festzulegen. Das nächste Projekt (gemäß der Reihenfolge) ist ein manueller Schritt zum Bereitstellen. Ich muss auf eine Umgebungsvariable zugreifen, die im Build-Schritt festgelegt wurde.Umgebungsvariable vom vorherigen Build abrufen
Nach der Konsolenausgabe ich richtig mache:
[EnvInject] - Executing scripts and injecting environment variables after the SCM step.
[EnvInject] - Injecting as environment variables the properties content
FOR=%%i IN ("%NewFile%") DO (SET FileName=%%~ni)
FILE_NAME=%FileName%
[EnvInject] - Variables injected successfully.
jedoch in meinem nächsten Schritt, wo ich die $FILE_NAME
Variable, um den Zugriff muß die richtigen Ordner zu scp
angeben, aus ich das bekommen folgende Ausgabe:
[SCP] No file(s) found: releases\$FILE_NAME\*
Gibt es eine Einstellung, die ich vermisse oder versuche ich auf die Variable falsch zuzugreifen?
Ich sehe diese Option unten - "Inject Umgebungsvariable" - aber das ist der gleiche Schritt, den ich zuvor verwendet habe, um die $FILE_NAME
Variable zu erstellen. Wenn das der richtige Schritt ist ... Wie benutze ich es um die Variable zu bekommen? :)
EDIT
Durch die Optionen unten zu klicken ...
... Ich bin in der Lage, die folgenden Ausgaben in der Konsole zu erhalten, wenn das Projekt aufbaut.
[EnvInject] - Loading node environment variables.
[EnvInject] - Preparing an environment for the build.
[EnvInject] - Keeping Jenkins system variables.
[EnvInject] - Keeping Jenkins build variables.
[EnvInject] - Injecting contributions.
[EnvInject] - Unset unresolved 'USERNAME' variable.
Allerdings kann ich immer noch nicht auf $FILE_NAME
zugreifen. Unten ist die Option, die ich gewählt habe, um die Variable im vorherigen Build-Schritt zu setzen.
Und hier ist das Skript, das in den „Eigenschaften Inhalt“ geht: ich für den letzten Dateinamen suchen
FOR /F "delims=|" %%I IN ('DIR "C:\Jenkins\workspace\Project\releases\*.nupkg" /B /O:D') DO SET NewFile=%%I
FOR %%i IN ("%NewFile%") DO (SET FileName=%%~ni)
FILE_NAME = %FileName%
Die Fehlermeldung gibt es Ihren Dateinamen als Ordner nimmt. Haben Sie die Konfiguration und die Dokumentation der Felder erneut überprüft? (das "?" neben ihnen an der Seite) –
Es soll als der Ordnername verwendet werden (es wird als ein Dateiname an anderer Stelle im vorherigen Schritt verwendet). Ich werde in das "?" Dokumentation. – NealR
Wenn ich andere Umgebungsvariablen verwende, wird der Wert in der Konsolenausgabe angezeigt. Es scheint, als würde es '$ FILE_NAME' nicht als Umgebungsvariable erkennen. – NealR