2017-03-01 105 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。