我希望能够做到以下几点:
AOEU=$(echo aoeu)
并让Jenkins设置AOEU= AOEU。
Jenkins中的环境变量部分不会这样做。相反,它设置了AOEU='$(echo AOEU)'。
如何让Jenkins计算shell命令并将输出分配给环境变量?
最后,我希望能够将作业的执行程序分配给一个环境变量,该环境变量可以传递给其他脚本或由其他脚本使用。
我希望能够做到以下几点:
AOEU=$(echo aoeu)
并让Jenkins设置AOEU= AOEU。
Jenkins中的环境变量部分不会这样做。相反,它设置了AOEU='$(echo AOEU)'。
如何让Jenkins计算shell命令并将输出分配给环境变量?
最后,我希望能够将作业的执行程序分配给一个环境变量,该环境变量可以传递给其他脚本或由其他脚本使用。
当前回答
你可以使用环境注入器插件在作业和节点级别设置Jenkins中的环境变量。以下是将它们设置为工作级别的步骤:
在Jenkins网页界面,进入Manage Jenkins > Manage Plugins并安装插件。
进入作业Configure界面 在“构建”部分中找到“添加构建步骤”并选择“注入环境变量” 将所需的环境变量设置为VARIABLE_NAME=VALUE模式。在我的例子中,我改变了USERPROFILE变量的值
如果你需要根据某些条件(例如作业参数)定义一个新的环境变量,那么你可以参考这个答案。
其他回答
最简单的方法
你可以使用EnvInject插件在构建启动时注入环境变量。例如:
你怎么知道它有用
扩展@JSixface的答案:
若要在声明式管道的所有阶段内全局定义环境变量,以便进行访问,可以在管道块中添加环境部分。
pipeline {
agent {
node {
label 'myAgent'
}
}
environment {
AOEU = "${sh(returnStdout: true, script: 'echo aoeu').trim()}"
}
stages {
...
}
}
通常可以在“配置系统”的“全局属性”中配置环境变量。
然而,对于带有shell替换的动态变量,您可能希望在Jenkins HOME目录下创建一个脚本文件,并在构建期间执行它。需要SSH访问。为例。
以Jenkins登录:sudo su - Jenkins或sudo su - Jenkins -s /bin/bash 创建一个shell脚本,例如: echo 'export VM_NAME="$JOB_NAME"' > ~/load_env.sh export AOEU=$(echo AOEU)> > ~ / load_env.sh Chmod 750 ~/load_env.sh 在Jenkins Build (Execute shell)中,在任何其他事情之前调用脚本及其变量,例如。 源~ / load_env.sh
你可以使用环境注入器插件在作业和节点级别设置Jenkins中的环境变量。以下是将它们设置为工作级别的步骤:
在Jenkins网页界面,进入Manage Jenkins > Manage Plugins并安装插件。
进入作业Configure界面 在“构建”部分中找到“添加构建步骤”并选择“注入环境变量” 将所需的环境变量设置为VARIABLE_NAME=VALUE模式。在我的例子中,我改变了USERPROFILE变量的值
如果你需要根据某些条件(例如作业参数)定义一个新的环境变量,那么你可以参考这个答案。
这可以通过EnvInject插件以以下方式完成:
创建一个“Execute shell”构建步骤,运行: echo AOEU=$(echo AOEU) >概要文件 创建一个注入环境变量构建步骤,并将“属性文件路径”设置为propsfile。
注意:这个插件(大部分)与Pipeline插件不兼容。