在批处理脚本中使用Bamboo变量

时间:2019-09-11 09:44:54

标签: docker batch-file bamboo

根据this very old question,您可以在批处理脚本(例如%bamboo_buildNumber%)中使用Bamboo变量,但是它对我不起作用,我得到一个空字符串。我也尝试了%bamboo.buildNumber%,结果相同。该脚本不是内联的,并且由Dockerfile使用。这有影响吗?还是自从提出上述问题以来发生了变化?

在脚本中我有一行

innosetup-compiler MySetup.iss "--DVERSION=%major%.%minor%" "--DPATCH=%bamboo_buildNumber%"

然后在我的Dockerfile中编写

RUN ./MyScript.bat

更新

所以我认为发生的事情是,因为批处理脚本是从Dockerfile运行的,所以它也在容器内运行,因此无法访问Bamboo环境变量。我尝试将有问题的变量通过Dockerfile传递到脚本中,但到目前为止尚未起作用。

2 个答案:

答案 0 :(得分:0)

我相信在更新版本的Bamboo中这已经改变。现在首选的语法是在passing variables to a build script时使用$ {bamboo.buildNumber}。我什至在旧的/ bin / sh cmd.exe脚本中使用了这种方法。当您在日志中看到以下内容时,您就会知道它已经起作用:

Substituting variable: ${bamboo.buildNumber} with xxxx

一旦确认上述变量替换有效,就可以排查该变量如何(或不可以)进入Docker脚本。

有关主要次要版本号的更多信息,请查看this page。如果它是一个自定义变量,则可能需要稍微不同地调用它。

答案 1 :(得分:0)

如果我们在Bamboo脚本任务中使用脚本主体,则$ {bamboo.buildNumber}可以正常工作,但是如果我们需要在bat文件或ps1文件中进行访问,则需要使用以下语法进行访问< / p>

%bamboo_buildNumber%在.bat文件中使用

Powershell文件中的$ Env:bamboo_buildNumber