簡體   English   中英

如何在Thoughtworks Go任務命令中解決環境變量

[英]How to resolve Environmental Variables in a Thoughtworks Go task command

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}"

什么都行不通

Thoughtworks Go有一個關於這個確切問題的支持頁面 ,說明:

請注意,這是一個普通的exec,而不是shell exec,因此[$ FOO]將沒有所需的效果

最簡單的解決方案:

command: /bin/bash

args:
-c
echo
$GO_SERVER_URL

另一種方法是簡單地將腳本放入文件中。

為什么我知道這個? 因為我也碰到了它。

對於具有多個選項的命令,Go非常挑剔。 tedder42的回答對於簡單的回聲情況是正確的,但對於我使用帶有多個參數的curl的真實問題不起作用。 Sliivas Upadhya on the Go Google小組幫助了我。 我想在這里為其他人記錄,所以很容易找到。 看起來很明顯,但小偏差不起作用。

輸入您的命令完全如下: 在此輸入圖像描述

XML應該如下所示:

<tasks>
  <exec command="/bin/bash">
    <arg>-c</arg>
    <arg>curl -o test.file $GO_VAR</arg>
    <runif status="passed" />
  </exec>
  ....
</tasks>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM