【问题标题】:How to pass Teamcity build parameters into an Ant script that is launched by Fake script?如何将 Teamcity 构建参数传递到由 Fake 脚本启动的 Ant 脚本中?
【发布时间】:2015-03-28 06:14:45
【问题描述】:

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

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

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

我已将此脚本的执行移至 Fake 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 的内部版本号?

【问题讨论】:

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


    【解决方案1】:

    好吧,我最终通过命令行参数传递了内部版本号。

    在假脚本中:

    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}" />
    

    欢迎提供更优雅的解决方案。

    【讨论】:

      猜你喜欢
      • 2015-01-27
      • 2011-02-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-09-16
      • 2012-12-23
      • 1970-01-01
      • 2019-10-03
      相关资源
      最近更新 更多