我希望能够做到以下几点:
AOEU=$(echo aoeu)
并让Jenkins设置AOEU= AOEU。
Jenkins中的环境变量部分不会这样做。相反,它设置了AOEU='$(echo AOEU)'。
如何让Jenkins计算shell命令并将输出分配给环境变量?
最后,我希望能够将作业的执行程序分配给一个环境变量,该环境变量可以传递给其他脚本或由其他脚本使用。
我希望能够做到以下几点:
AOEU=$(echo aoeu)
并让Jenkins设置AOEU= AOEU。
Jenkins中的环境变量部分不会这样做。相反,它设置了AOEU='$(echo AOEU)'。
如何让Jenkins计算shell命令并将输出分配给环境变量?
最后,我希望能够将作业的执行程序分配给一个环境变量,该环境变量可以传递给其他脚本或由其他脚本使用。
当前回答
有一个Build Env传播器插件,它可以让你添加新的构建环境变量,例如:
任何后续的传播构建环境变量步骤都将覆盖先前定义的环境变量值。
其他回答
你可以尝试这样做
stages {
stage('Build') {
environment {
AOEU= sh (returnStdout: true, script: 'echo aoeu').trim()
}
steps {
sh 'env'
sh 'echo $AOEU'
}
}
}
在我的例子中,我需要添加JMETER_HOME环境变量,使其可以通过我的Ant构建脚本在我的Jenkins服务器(Linux)上的所有项目中使用,并且不会干扰build.xml脚本中的本地构建环境(Windows和Mac)。通过Manage Jenkins - Configure System - Global属性来设置环境变量是最简单和侵入性最小的方法。不需要插件。
环境变量可以通过以下方式在Ant中使用:
<property environment="env" />
<property name="jmeter.home" value="${env.JMETER_HOME}" />
这可以通过添加:
<echo message="JMeter Home: ${jmeter.home}"/>
生产:
JMeter Home: ~/.jmeter
尝试环境脚本插件(GitHub),它非常类似于EnvInject。它允许您在构建之前(SCM签出之后)运行一个脚本,为它生成环境变量。如。
在你的脚本中,你可以输出例如FOO=bar到标准输出来设置该变量。
添加到现有path样式变量的示例:
echo PATH+unique_identifier=/usr/local/bin
因此,您可以自由地在脚本中做任何您需要做的事情—要么cat文件,要么从项目的源代码树中以其他语言运行脚本,等等。
这可以通过EnvInject插件以以下方式完成:
创建一个“Execute shell”构建步骤,运行: echo AOEU=$(echo AOEU) >概要文件 创建一个注入环境变量构建步骤,并将“属性文件路径”设置为propsfile。
注意:这个插件(大部分)与Pipeline插件不兼容。
最简单的方法
你可以使用EnvInject插件在构建启动时注入环境变量。例如:
你怎么知道它有用