Thoughtworks Go提供了一系列传递给每项任务的特定于工作的环境变量。 例如,我的作业输出的值与API doc指定的值相同。
[go] setting environment variable 'GO_ENVIRONMENT_NAME' to value 'rmp'
[go] setting environment variable 'a' to value 'b'
[go] setting environment variable 'GO_SERVER_URL' to value 'https://10.8.249.57:8154/go/'
我无法在bash任务命令中解析变种。
[go] Start to execute task: <exec command="echo" >
<arg>${GO_SERVER_URL}</arg>
只输出
${GO_SERVER_URL}
我试过......
${GO_SERVER_URL}
${env.GO_SERVER_URL}
${go.GO_SERVER_URL}
$[GO_SERVER_URL]
$GO_SERVER_URL
"${GO_SERVER_URL}"
没有用......
答案 0 :(得分:4)
Thoughtworks Go has a support page about this exact problem,说明:
请注意,这是一个普通的exec,而不是shell exec,因此[$ FOO]将没有所需的效果
最简单的解决方案:
command: /bin/bash
args:
-c
echo
$GO_SERVER_URL
另一种方法是简单地将脚本放入文件中。
为什么我知道这个?因为我也碰到了它。
答案 1 :(得分:1)
对于具有多个选项的命令,Go非常挑剔。 tedder42的回答对于简单的回声情况是正确的,但对于我使用带有多个参数的curl的真实问题不起作用。 Go Google group的Srinivas Upadhya帮助了我。我想在这里为其他人记录,所以很容易找到。它看起来很明显,但是小的偏差不起作用。
输入您的命令,如下所示:
XML应如下所示:
<tasks>
<exec command="/bin/bash">
<arg>-c</arg>
<arg>curl -o test.file $GO_VAR</arg>
<runif status="passed" />
</exec>
....
</tasks>