我正在尝试使用参数设置构建,此参数在少数构建步骤中使用,它描述了Jira票号,来自Jira。
现在问题是我需要用这个票号来改进这个构建到checkout分支,或者如果我没有这样的名称的分支 - 在master分支上运行build。
我无法使用“更改”选项卡作为其完全自动化的过程。
我也不能在构建步骤中使用git命令。
是否有可能在构建步骤的脚本中从VCS和setup checkout分支中获取构建步骤的所有分支列表?
使用TeamCity版本9.1.1。谢谢你,祝你有个愉快的一天。
使用git解决方案:
在依赖构建中添加构建步骤:
#!/usr/bin/env bash
test_branch=`git branch -a | tr -d "remotes/origin/" | grep %default_branch%`
if [ -z "$test_branch" ]; then
test_branch="master"
echo "Switching to branch: " $test_branch
ruby -e "puts \"##teamcity[setParameter name='default_branch' value='$test_branch']\""
else
echo "Switching to branch: " $test_branch
ruby -e "puts \"##teamcity[setParameter name='default_branch' value='%default_branch%']\""
fi
我正在寻找允许我避免使用git的TC功能。只是为了检查我们是否在+:refs/heads/*
中有这样的分支。
答案 0 :(得分:1)
半解决方案(使用git):
根据我的理解,此解决方案的问题是,如果构建已在队列中,则无法将参数发送到VCS根目录。它只能在触发时才能设置。 同样在TeamCity的分支列中,不会显示任何个性化分支,只有< default>无论你跑什么。
解决方案二:
reverse.dep.*.teamcity.build.branch
此参数将发送以检查构建链中的所有构建。 TeamCity将尝试使用此参数检出分支,如果它不存在,它将检出默认(主)分支。 对于所有相关构建,TeamCity中分支列的副作用将显示此参数。
所以现在解决方案#2解决了我的问题。
答案 1 :(得分:0)
您可以查看此文档,其中介绍了如何正确配置VCS ROOT和作业以使用功能分支(针对您的用例的故障单分支): https://confluence.jetbrains.com/display/TCD9/Working+with+Feature+Branches