目前正在执行构建的团队城市代理没有' git'安装了一个linux盒子。我不能在那里安装git。
teamcity中是否存在可以在构建步骤中支持以下内容的本机方法:
git checkout -b %dynamicversion%
答案 0 :(得分:1)
在VCS Root设置中,您可以设置分支规范。
分支规范将允许您运行特定分支(即:+:feature/*
)
然后,项目顶部会出现一个组合框,以便选择您的项目。
如果要构建的分支取决于代码中的某些内容,则可以使用依赖项执行多个配置,并使用API进行触发。
构建1
构建在<default>
上,您可以在其中运行分支。
对teamcity的API调用将调用Build 2,参数branch
设置为指定值:
# RunSpecificBranch.ps1
# PowerShell: Run Build Configuration on a specific branch
Param(
[Parameter(Mandatory=$true)][string]$branchName,
[Parameter(Mandatory=$true)][string]$BuildToRun
)
Begin
{
$TCUrl = "http://<teamcityURL>/httpAuth/app/rest/buildQueue"
Execute-HTTPPostCommand $TCUrl "<build branchName=""$branchName""><buildType id=""$buildToRun""/></build>"
}
并在构建步骤中执行此脚本,如:RunSpecificBranch.ps1 -branchName: feature/ME/AwesomeFeature -buildToRun: Project_SubProject_SpecificBuildOnBranch
。
在运行构建配置Project_SubProject_SpecificBuildOnBranch
构建2
指定在下面指定的多个分支上运行,您将在此处执行您需要的自定义逻辑。
答案 1 :(得分:0)
回答你的问题。你需要确保在linux框中安装了git包,为了做到这一点,你可以做以下事情。
我猜你在团队城市代理中使用曲目来运行linux。
如果您使用makefile或脚本,则可以添加一个目标,即调用prepare-dev或&#34; anymeaningfull_name&#34;因为你可以尝试安装git包作为先决条件。
git checkout -b %dynamicversion%
据我所知,您想要查看具有buildversion标记的最新分支。
您可以创建ts.native.ini文件添加dependecy包,
suite: precise mirror: http://xx.archive.ubuntu.com/ubuntu components: main restricted universe packages: mtools devscripts gcc make git libgnutls28-dev libboost-test-dev sudo e2fsprogs prepare: make prepare-dev preparefiles: Makefile
完成此操作后,您可以添加目标。您可以在脚本中使用它。
#!/bin/sh
set -e
if [ "$(whoami)" != "root" ]; then
echo "Please run as root"
exit 1
fi
git clean -xfd
trap "$TRACKS -u" EXIT
_mkdebs()
{
export TRACKS_INIFILE=ts.trusty(native).ini
$TRACKS -b -- make mkdebs CCACHE_DIR=$CCACHE_DIR
}
您可以在teamcity代理中添加ts.native.ini跟踪文件,以便安装所需的所有前提条件。