如何将 Teamcity 构建参数传递到由 Fake 脚本启动的 Ant 脚本中?
How to pass Teamcity build parameters into an Ant script that is launched by Fake script?
我有一个 Ant build.xml
,其中包含以下代码:
<mkdir dir="c:/MyDir/${build.number}/html"/>
当我 运行 此任务作为单独的 TeamCity 构建步骤(作为 Ant 任务)时,这工作正常。
我已将此脚本的执行移至伪 F# 脚本中。现在,当我从 Teamcity 执行 Fake 脚本时,未设置参数值(它确实创建了一个名为“${build.number}”的文件夹)。
我像这样在 Fake 中启动我的 ant 脚本:
let cmd = sprintf @"%s\plugins\ant\bin\ant.bat" (Configuration.agentHomeDir.ToString())
let args = ""
let dir = ""
Shell.Exec(cmd, args, dir)
如何从我的 ant 脚本中正确引用 Teamcity 的内部版本号?
好吧,我最终通过命令行参数传递了内部版本号。
在假脚本中:
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)
在蚂蚁的build.xml中:
<property name="buildNumber" value="buildNumber" />
...
<mkdir dir="c:\mydir${buildNumber}" />
欢迎更优雅的解决方案。
我有一个 Ant build.xml
,其中包含以下代码:
<mkdir dir="c:/MyDir/${build.number}/html"/>
当我 运行 此任务作为单独的 TeamCity 构建步骤(作为 Ant 任务)时,这工作正常。
我已将此脚本的执行移至伪 F# 脚本中。现在,当我从 Teamcity 执行 Fake 脚本时,未设置参数值(它确实创建了一个名为“${build.number}”的文件夹)。
我像这样在 Fake 中启动我的 ant 脚本:
let cmd = sprintf @"%s\plugins\ant\bin\ant.bat" (Configuration.agentHomeDir.ToString())
let args = ""
let dir = ""
Shell.Exec(cmd, args, dir)
如何从我的 ant 脚本中正确引用 Teamcity 的内部版本号?
好吧,我最终通过命令行参数传递了内部版本号。
在假脚本中:
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)
在蚂蚁的build.xml中:
<property name="buildNumber" value="buildNumber" />
...
<mkdir dir="c:\mydir${buildNumber}" />
欢迎更优雅的解决方案。