我有一个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的内部版本号?
答案 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}" />
欢迎更优雅的解决方案。