Teamcity执行GIT结账

时间:2017-03-01 16:37:13

标签: git build teamcity

目前正在执行构建的团队城市代理没有' git'安装了一个linux盒子。我不能在那里安装git。

teamcity中是否存在可以在构建步骤中支持以下内容的本机方法:

git checkout -b %dynamicversion%

2 个答案:

答案 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://&lt;teamcityURL&gt;/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跟踪文件,以便安装所需的所有前提条件。