2017-03-01 61 views
6

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

是否有TeamCity的一个本地方法,可以支持在以下构建步骤:

git checkout -b %dynamicversion% 
+0

TeamCity支持git。文档[这里](https://confluence.jetbrains.com/display/TW/Git)和[here](https://confluence.jetbrains.com/display/TCD10/Git)可能会有所帮助。 – kowsky

+0

你想达到什么目的?根据teamcity中的参数在代理上创建新的分支?代理AFAIK没有本地的方式。顺便说一句,有办法避开git,也许你可以在代理上使用JGit。 (TeamCity服务器使用它,我想)或者也许创建一个代理端插件。 – sm4

回答

1

里面的VCS根设置,可以设置分支规范。 分支规范将允许你运行一个特定的分支(即:+:feature/*

然后一个组合框会出现在你的项目的顶部,为了选择你的项目。

如果要构建的分支取决于代码中的某些内容,则可以使用依赖关系执行多个配置并使用API​​进行触发。

构建1

建立在<default>你在哪里得到的分支运行。在TeamCity的 API调用,它将调用建立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

指定在多个分支机构运行作为指定波纹管,你会在这里做你的自定义逻辑你需要的。

+0

谢谢,但要求是从pom文件中剥离一个版本,并执行git checkout作为当前正在执行的构建的构建步骤。 – xtechkid

0

回答你的问题。你需要确保git软件包安装在linux系统中,为了做到这一点,你可以做以下事情。

我想你在团队城市代理中使用跟踪来运行linux。

如果使用生成文件或脚本,您可以添加一个目标是呼吁在准备-dev的或“anymeaningfull_name”你可以尝试安装git的包作为先决条件。

git checkout -b %dynamicversion% 

我的理解是,你想签出具有buildversion标签的最新分支。

您可以创建ts.native.ini文件添加的关系是不包,

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跟踪文件,以便安装所需的所有prerequs。

相关问题