2013-06-16 41 views
15

Làm cách nào để gán giá trị thời gian chạy cho tham số xây dựng? Tôi thiết lập một tham số xây dựng, hãy nói% config.buildMode%, đến một dropdown và tôi cần phải có một cái gì đó giống như một điều kiện IF để tôi có thể gán một giá trị khác cho một tham số khác dựa trên lựa chọn buildmode.TeamCity giá trị tham số có điều kiện

ví dụ:

if %config.buildMode% == 'Debug' 
    %config.hostName% = 'localhost' 
else if %config.buildMode% == 'Release' 
    %config.hostName% = 'http://servername' 
else 
    %config.hostName% = 'http://stackoverflow.com' 
+0

chỉ cần đặt tất cả các thông số –

Trả lời

0

Tôi không nghĩ rằng điều kiện là có thể. Ales có thể có nghĩa là mỗi tham số có thể chứa một mashup chuỗi, có thể được phân tích cú pháp bởi tập lệnh nhận. Ví dụ:

%config.buildMode-1% == 'Debug|localhost' 
%config.buildMode-2% == 'Release|http://servername' 
%config.buildMode-3% == '*|http://stackoverflow.com' 
15

Thay vì muộn, nhưng có thể. Thêm thông số bổ sung cho giá trị bạn muốn có điều kiện (ví dụ: TargetServerName), nhưng để trống giá trị. Sau đó, thêm một bước xây dựng PowerShell lúc bắt đầu quá trình của bạn, và nhập một kịch bản như thế này;

$BuildMode = "%buildMode%" 
$ServerName = "" 

if ($BuildMode -eq "Debug") { 
    $ServerName = "localhost" 
} 
elseif ($BuildMode -eq "Release") { 
    $ServerName = "theserver" 
} 
else 
{ 
exit 1 
} 
echo "##teamcity[setParameter name='TargetServerName' value='$ServerName']" 

Dòng cuối cùng là phép màu. Bằng cách xuất hiện, teamcity về cơ bản sẽ thực thi nó, thiết lập tham số TargetServerName của bạn. Sau đó, bạn có thể sử dụng tham số trong các bước xây dựng tiếp theo.

+0

Để biết thêm thông, đọc tài liệu tại https://confluence.jetbrains.com/display/TCD10/Build+Script+Interaction+with+TeamCity#BuildScriptInteractionwithTeamCity-changingBuildParameterAddingorChangingaBuildParameterfromaBuildStepAddingorChangingaBuildParameter – stun

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