【问题标题】:FAKE get TeamCity build branchFAKE 获取 TeamCity 构建分支
【发布时间】:2015-09-30 11:11:38
【问题描述】:

我正在使用 FAKE 为 TeamCity 设置构建一些构建脚本。我的部分构建需要我访问 teamcity.build.branch 参数,但是因为它不是环境变量,所以我不确定如何访问它。

我尝试将%teamcity.build.branch% 添加到 TeamCity 中的环境变量中,但它似乎不喜欢那样。我也无法使用 FAKE git 模块访问它,因为团队城市代理不使用 git 获取项目文件,TeamCity 将其交给他们。

如何将teamcity.build.branch 参数传递给我的 FAKE 脚本?理想情况下,我希望它作为一个环境变量,以便我可以直接从脚本中获取它,但我对任何其他想法持开放态度。

【问题讨论】:

    标签: f# teamcity f#-fake


    【解决方案1】:

    尝试在构建步骤中将%teamcity.build.branch% 作为参数传递。

    【讨论】:

    • 我现在已经想通了,并将我的答案贴给了你的答案。谢谢!
    【解决方案2】:

    我在@Nadeem 的回答中得到了一点帮助。

    现在我的 build.bat/cmd 文件接受了一个参数,然后我将其传递给我的 Fake.exe 调用,如下所示:

    "packages\FAKE\tools\Fake.exe" build.fsx branch=%1

    然后在我的 FAKE 代码中,我使用的是 getBuildParamOrDefault "branch" <default branch here>

    然后我将其用作分支名称。我还在传入的构建参数上使用字符串拆分,因为通常它的格式为ref/head/<branch name>,我只想要分支名称。

    我还必须传入%teamcity.build.vcs.branch.<project>% 而不是%teamcity.build.branch%,因为我的代理不喜欢隐含的要求。我不完全确定这是为什么,但现在一切正常。

    【讨论】: