如何将Teamcity构建参数传递给由Fake脚本启动的Ant脚本?

时间:2015-03-27 20:17:26

标签: ant environment-variables teamcity f#-fake

我有一个Ant build.xml,其中包含以下代码:

<mkdir dir="c:/MyDir/${build.number}/html"/>

当我将此任务作为单独的TeamCity构建步骤(作为Ant任务)运行时,这可以正常工作。

我已将此脚本的执行移至Fake F#脚本中。现在,当我从Teamcity执行Fake脚本时,没有设置参数的值(它实际上创建了一个名为“$ {build.number}”的文件夹)。

我像Fake一样启动我的蚂蚁脚本:

let cmd = sprintf @"%s\plugins\ant\bin\ant.bat" (Configuration.agentHomeDir.ToString())
let args = ""
let dir = ""

Shell.Exec(cmd, args, dir)

我如何正确地从我的蚂蚁脚本中引用Teamcity的内部版本号?

1 个答案:

答案 0 :(得分:0)

好吧,我最终通过命令行参数传递了buildnumber。

在假脚本中:

let buildNumber = environVar "BUILD_NUMBER"
let cmd = sprintf @"%s\plugins\ant\bin\ant.bat" (Configuration.agentHomeDir.ToString())
let args = sprintf "-DbuildNumber=%s" buildNumber.ToString()
let dir = ""
Shell.Exec(cmd, args, dir)

在ant的build.xml中:

<property name="buildNumber" value="buildNumber" />

...

<mkdir dir="c:\mydir\${buildNumber}" />

欢迎更优雅的解决方案。