我正在使用EnvInject Jenkins插件在我们的部署管道中的构建步骤中设置环境变量。下一个项目(根据订单)是一个部署的手动步骤。我需要访问构建步骤中设置的环境变量。
根据控制台输出我正确地做到了:
[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.
然而,在我的下一步中,我需要访问$FILE_NAME
变量以便从scp
指定正确的文件夹,我得到以下输出:
[SCP] No file(s) found: releases\$FILE_NAME\*
是否有我缺少的设置或我是否尝试错误地访问变量?
我在下面看到这个选项 - “注入环境变量” - 但这与我之前用来创建$FILE_NAME
变量的步骤相同。如果这是正确的步骤...我如何使用它来获取变量? :)
修改
点击下面的选项...
...我可以在项目构建时获得以下控制台输出。
[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.
但是我仍然无法访问$FILE_NAME
。下面是我选择在上一个构建步骤中设置变量的选项。
以下是“属性内容”中的脚本:
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%