我希望能够做到以下几点:

AOEU=$(echo aoeu)

并让Jenkins设置AOEU= AOEU。

Jenkins中的环境变量部分不会这样做。相反,它设置了AOEU='$(echo AOEU)'。

如何让Jenkins计算shell命令并将输出分配给环境变量?

最后,我希望能够将作业的执行程序分配给一个环境变量,该环境变量可以传递给其他脚本或由其他脚本使用。


当前回答

你可以使用下面列出的任何一种方式:

使用Env Inject Plugin创建环境变量。了解使用方法和更多详细信息https://github.com/jenkinsci/envinject-plugin 浏览下面并可以添加

管理Jenkins—>配置系统—>全局属性—>环境变量—>添加

其他回答

出于某种原因sudo su - jenkins不登录我到jenkins用户,我最终使用不同的方法。

我成功地设置了全局env变量使用jenkins config.xml在/var/lib/jenkins/config.xml(安装在Linux/ RHEL) -没有使用外部插件。

我只需要停止jenkins add,然后添加globalNodeProperties,然后重新启动。

例如,我定义变量APPLICATION_ENVIRONMENT和SPRING_PROFILES_ACTIVE到continuous_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>

你可以使用环境注入器插件在作业和节点级别设置Jenkins中的环境变量。以下是将它们设置为工作级别的步骤:

在Jenkins网页界面,进入Manage Jenkins > Manage Plugins并安装插件。

进入作业Configure界面 在“构建”部分中找到“添加构建步骤”并选择“注入环境变量” 将所需的环境变量设置为VARIABLE_NAME=VALUE模式。在我的例子中,我改变了USERPROFILE变量的值

如果你需要根据某些条件(例如作业参数)定义一个新的环境变量,那么你可以参考这个答案。

你可以尝试这样做

stages {
        stage('Build') {
            environment { 
                    AOEU= sh (returnStdout: true, script: 'echo aoeu').trim()
                }
            steps {
                sh 'env'
                sh 'echo $AOEU'
            }
        }
    }

通常可以在“配置系统”的“全局属性”中配置环境变量。

然而,对于带有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

有一个Build Env传播器插件,它可以让你添加新的构建环境变量,例如:

任何后续的传播构建环境变量步骤都将覆盖先前定义的环境变量值。