这可以通过 EnvInject插件 以下列方式:
创建一个运行的“执行shell”构建步骤:
echo AOEU=$(echo aoeu) > propsfile
创建一个 注入环境变量 构建步骤并将“属性文件路径”设置为 propsfile 。
propsfile
的 注意 强> :这个插件(大部分)与Pipeline插件不兼容。
在我的情况下,我需要添加 JMETER_HOME 环境变量可以通过我的Jen构建脚本在我的Jenkins服务器(Linux)上的所有项目中使用,其方式不会干扰我的本地构建环境(Windows和Mac) build.xml 脚本。通过设置环境变量 的 管理Jenkins - 配置系统 - 全局属性 强> 是实现这一目标的最简单,最不具侵入性的方式。不需要插件。
JMETER_HOME
build.xml
然后,Ant中的环境变量可用:
<property environment="env" /> <property name="jmeter.home" value="${env.JMETER_HOME}" />
这可以通过添加以下内容来验证:
<echo message="JMeter Home: ${jmeter.home}"/>
哪个产生:
JMeter主页:〜/ .jmeter
你可以尝试这样的事情
stages { stage('Build') { environment { AOEU= sh (returnStdout: true, script: 'echo aoeu').trim() } steps { sh 'env' sh 'echo $AOEU' } } }
由于某些原因 sudo su - jenkins 不记录我 jenkins 用户 ,我最终使用了不同的方法。
sudo su - jenkins
jenkins
我使用jenkins成功设置了全局env变量 config.xml 在 /var/lib/jenkins/config.xml (安装在Linux / RHEL中) - 不使用外部插件。
config.xml
/var/lib/jenkins/config.xml
我只需要停止jenkins添加然后添加 globalNodeProperties ,然后重启。
globalNodeProperties
例如,我正在定义变量 APPLICATION_ENVIRONMENT 和 SPRING_PROFILES_ACTIVE 至 continious_integration 下面,
APPLICATION_ENVIRONMENT
SPRING_PROFILES_ACTIVE
continious_integration
<?xml version='1.0' encoding='UTF-8'?> <hudson> <globalNodeProperties> <hudson.slaves.EnvironmentVariablesNodeProperty> <envVars serialization="custom"> <unserializable-parents/> <tree-map> <default> <comparator class="hudson.util.CaseInsensitiveComparator"/> </default> <int>2</int> <string>APPLICATION_ENVIRONMENT</string> <string>continious_integration</string> <string>SPRING_PROFILES_ACTIVE</string> <string>continious_integration</string> </tree-map> </envVars> </hudson.slaves.EnvironmentVariablesNodeProperty> </globalNodeProperties> </hudson>
尝试 环境脚本插件 ( GitHub上 )这是非常相似的 EnvInject 。它允许您在构建之前(SCM结帐之后)运行脚本,为其生成环境变量。例如。
在您的脚本中,您可以打印例如 FOO=bar 到标准输出来设置该变量。
FOO=bar
附加到现有的示例 PATH 式变量:
PATH
echo PATH+unique_identifier=/usr/local/bin
因此,您可以自由地在脚本中执行任何操作 - 或者 cat 一个文件,或者从项目的源代码树中运行其他语言的脚本等。
cat
我们使用groovy工作文件:
description('') steps { environmentVariables { envs(PUPPETEER_SKIP_CHROMIUM_DOWNLOAD: true) } }
就我而言,我使用以下选项配置了环境变量,并且它工作了 -
Manage Jenkins -> Configure System -> Global Properties -> Environment Variables -> Add
Jenkin正在为此提供内置支持,您可以使用它来访问局部变量的值作为全局环境变量。您可以通过以下4个简单步骤实现此目的。
的 步骤1 强>
............................ rm -f <some_name>.properties touch <Some_name>.properties ............................ #pass the variable name you want to access as an env variable echo variable_name1=$some_value1 >> <some_name>.properties echo variable_name2=$some_value2 >> <some_name>.properties ............................ echo variable_name3=$some_value3 >> <some_name>.properties
的 第2步 强>
在“ 添加构建步骤 “下拉,选择” 注入环境变量 “
的 步骤:3 强>
输入您之前创建的完全限定文件名( <some_name>.properties )in 属性文件路径 领域。
<some_name>.properties
的 第4步 强>
现在它可以作为Jenkins环境变量使用,您可以在Post-build-Action中根据需要使用它。 的 $ variable_name1 强> 像任何其他环境变量一样。
这里 这是一个很好的帖子