【发布时间】:2015-12-04 11:38:04
【问题描述】:
我正在尝试使用参数设置构建,这个参数在几个构建步骤中使用,它描述了 Jira 票号,并且来自 Jira。
现在的问题是我需要改进此构建以使用此票号结帐分支,或者如果我没有具有此类名称的分支 - 在主分支上运行构建。
我不能将“更改”选项卡用作其完全自动化的过程。
我也不能在构建步骤中使用 git 命令。
是否可以在构建步骤中获取来自 VCS 的所有分支的列表并在构建步骤的脚本中设置结帐分支?
使用 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/* 中是否有这样的分支。
【问题讨论】:
-
您能否阐明您尝试设置的构建步骤,包括 vcs 结帐步骤?你在构建过程中得到这个票号吗?您是否也检查过TeamCity integration for JIRA 是否适合您的需求?
-
嗨,Rémi,票证使用自己的参数触发构建,此构建使用另一个参数触发依赖构建。结果我们在构建链中有 2 个构建,我想在第一个构建中设置结帐分支,并在第二个构建中执行结帐的所有操作。我从一开始就获得票号。实际上我们正在使用自己的集成解决方案,所以不幸的是它不适合我的需求。谢谢。
-
我将尝试更清楚地描述:我们有带有 master 分支的测试存储库,有时如果它是 dev 存储库中的关键更改,我们正在创建我们自己的具有相同名称(票证名称)的测试分支。 Jira 触发 TC 作业并在那里发送分支参数,所以我们正在使用这个 dev 分支准备环境,我们需要检查我们在测试 repo 中是否有这样的分支,如果是 - 签出这个以执行测试,如果没有 - 默认签出分支。
-
当现有分支或带有 VCS ROOT 触发器的新分支发生更改时,为什么不让所有分支运行 team-city 测试作业?
-
设置触发器并在更改时运行所有内容并不是一个好主意,因为所有报告都发送到 jira 并且应该仅在票证进入运行 CI 测试状态时触发。