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

AOEU=$(echo aoeu)

并让Jenkins设置AOEU= AOEU。

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

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

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


当前回答

我们使用groovy作业文件:

description('')
steps {
    environmentVariables {
        envs(PUPPETEER_SKIP_CHROMIUM_DOWNLOAD: true)
    }
}

其他回答

出于某种原因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>

在我的例子中,我需要添加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

我们使用的Scripted Pipeline语法是这样的:

env.AEOU = sh label:'set env var',
                returnStdout: true,
               script : '''#!/bin/bash
                   echo "aeou"
               '''
sh label:'checkit',
 script : '''#!/bin/bash
    echo "${AEOU}"
 '''

注意,sh步骤的脚本参数使用了三单引号表示法。这确保了${AEOU}不会被Groovy插入,而是被bash shell插入。

在我的例子中,我使用以下选项配置环境变量,它工作了-

Manage Jenkins -> Configure System -> Global Properties -> Environment Variables -> Add

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

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