2017-03-01 19 views
6

Tác nhân thành phố của nhóm hiện đang thực hiện bản dựng không có 'git' đã cài đặt hộp Linux của nó. Tôi không thể cài đặt git ở đó.Teamcity thực hiện GIT Checkout

Có một phương pháp có nguồn gốc trong TeamCity mà có thể hỗ trợ dưới đây trong xây dựng các bước:

git checkout -b %dynamicversion% 
+0

TeamCity hỗ trợ git. Tài liệu [tại đây] (https://confluence.jetbrains.com/display/TW/Git) và [tại đây] (https://confluence.jetbrains.com/display/TCD10/Git) có thể hữu ích. – kowsky

+0

Bạn đang cố gắng đạt được điều gì? Tạo một nhánh mới trên agent dựa trên tham số trong teamcity? Không có cách nào có nguồn gốc này trên đại lý AFAIK. BTW có nhiều cách để có được xung quanh không có git, có thể bạn có thể sử dụng JGit trên các đại lý. (TeamCity máy chủ sử dụng nó tôi nghĩ) Hoặc có thể tạo ra một plugin phía đại lý. – sm4

Trả lời

1

Bên trong các thiết lập VCS Root, bạn có thể thiết lập các chi nhánh kỹ thuật. Đặc tả chi nhánh sẽ cho phép bạn chạy một nhánh cụ thể (ví dụ: +:feature/*)

Sau đó, một hộp kết hợp sẽ xuất hiện trên đầu dự án của bạn, để chọn dự án của bạn.

Nếu nhánh xây dựng phụ thuộc vào thứ gì đó trong mã của bạn, bạn có thể thực hiện nhiều cấu hình, với các phụ thuộc và kích hoạt bằng API.

Build 1

xây dựng trên <default> nơi bạn sẽ có được chi nhánh để chạy. API Gọi trên TeamCity mà sẽ gọi Build 2 với tham số branch thiết lập với giá trị quy định:

# 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>" 
} 

Và Execute kịch bản này như: RunSpecificBranch.ps1 -branchName: feature/ME/AwesomeFeature -buildToRun: Project_SubProject_SpecificBuildOnBranch bên trong xây dựng của bạn Bước.

Các thanh toán của chi nhánh sẽ được thực hiện bởi các máy chủ trước khi chạy cấu hình build Project_SubProject_SpecificBuildOnBranch

Build 2

rõ để chạy trên nhiều chi nhánh theo quy định dưới đây, bạn sẽ làm gì đây logic tùy chỉnh của bạn đó là điều bạn cần.

+0

cảm ơn, nhưng yêu cầu là xóa một phiên bản khỏi tệp pom và thực hiện git checkout làm bước xây dựng từ công trình hiện đang thực thi. – xtechkid

0

Trả lời câu hỏi của bạn. Bạn cần phải chắc chắn gói git được cài đặt trong hộp linux, để làm điều đó bạn có thể làm những việc sau đây.

Tôi đoán bạn đang sử dụng tuyến đường trong đại lý Thành phố nhóm của mình để chạy Linux.

Nếu bạn sử dụng makefile hoặc tập lệnh, bạn có thể thêm mục tiêu gọi là chuẩn bị-dev hoặc "anymeaningfull_name" để bạn có thể cài đặt gói git làm điều kiện tiên quyết.

git checkout -b %dynamicversion% 

Điều tôi hiểu, bạn muốn thanh toán chi nhánh mới nhất có thẻ xây dựng.

Bạn có thể tạo tập tin ts.native.ini thêm gói 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 

Khi sau khi làm điều này bạn có thể thêm mục tiêu. Bạn có thể sử dụng nó trong kịch bản của bạn.

#!/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 
} 

Bạn có thể thêm tệp theo dõi ts.native.ini vào tác nhân nhóm để nó sẽ cài đặt tất cả các điều kiện tiên quyết cần thiết.

Các vấn đề liên quan