根据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传递到脚本中,但到目前为止尚未起作用。
答案 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