我能够在go模板中引用环境变量吗?

Tim*_*myD 5 thoughtworks-go

试图从go模板引用环境变量,但我不认为这是可能的?在文档和示例中看不到任何内容我通过使用参数充分但从不是环境变量.我想要的是什么样的

<templates>
<pipeline name="TestEcho">
  <stage name="Echo">
    <jobs>
      <job name="Echo">
        <tasks>
          <exec command="echo ${SOME_ENVIRONMENT_VARIABLE}">
          </exec>
        </tasks>
      </job>
    </jobs>
  </stage>
</pipeline>
<templates>
Run Code Online (Sandbox Code Playgroud)

提前致谢!

蒂姆

Cha*_*tin 6

是的你可以 !

您应该使用%SOME_ENVIRONMENT_VARIABLE%而不是$ {SOME_ENVIRONMENT_VARIABLE}(在Windows代理上).

我猜你正在使用Windows代理.Thoughtworks的文档以Linux为重点,这就是为什么他们的例子不适合你的原因.

您可以在任务中使用所有Go Standard环境变量.

您可以在以下位置设置环境变量

  • 环境水平
  • 管道级别(覆盖环境级别)
  • 阶段级别(覆盖管道级别)

您可以在任务中使用所有这些环境变量:

<pipeline name="TestEcho">
  <stage name="Echo">
    <jobs>
      <job name="Echo">
        <tasks>
          <exec command="echo %SOME_ENVIRONMENT_VARIABLE%">
          </exec>
        </tasks>
      </job>
    </jobs>
  </stage>
</pipeline>
Run Code Online (Sandbox Code Playgroud)

您可以在环境级别设置环境变量:

<environments>
  <environment name="SomeEnvironment">
    <environmentvariables>
      <variable name="SomeVariable">
        <value>SomeValue</value>
      </variable>
    </environmentvariables>
    <pipelines>
      <pipeline name="TestEcho" />
    </pipelines>
  </environment>
</environments>
Run Code Online (Sandbox Code Playgroud)

您可以在管道级别设置环境变量:

<pipeline name="TestEcho">
  <environmentvariables>
    <variable name="SomeVariable">
      <value>SomeValue</value>
    </variable>
  </environmentvariables>
  <stage name="Echo">
    <jobs>
      <job name="Echo">
        <tasks>
          <exec command="echo %SomeVariable%">
          </exec>
        </tasks>
      </job>
    </jobs>
  </stage>
</pipeline>
Run Code Online (Sandbox Code Playgroud)

您可以在阶段级别设置环境变量:

<pipeline name="TestEcho">
  <stage name="Echo">
    <jobs>
      <job name="Echo">
        <environmentvariables>
          <variable name="SomeVariable">
            <value>SomeValue</value>
          </variable>
        </environmentvariables>
        <tasks>
          <exec command="echo %SomeVariable%">
          </exec>
        </tasks>
      </job>
    </jobs>
  </stage>
</pipeline>
Run Code Online (Sandbox Code Playgroud)

您可以覆盖环境变量:

<pipeline name="TestEcho">
  <environmentvariables>
    <variable name="SomeVariable">
      <value>Value1</value>
    </variable>
  </environmentvariables>
  <stage name="Echo">
    <jobs>
      <job name="Echo">
        <environmentvariables>
          <variable name="SomeVariable">
            <value>Value2</value>
          </variable>
        </environmentvariables>
        <tasks>
          <exec command="echo %SomeVariable%"><!-- Write Value2 -->
          </exec>
        </tasks>
      </job>
      <job name="Echo2">
        <tasks>
          <exec command="echo %SomeVariable%"><!-- Write Value1 -->
          </exec>
        </tasks>
      </job>
    </jobs>
  </stage>
</pipeline>
Run Code Online (Sandbox Code Playgroud)

帮助我的消息来源