2013-06-16 3 views
15

빌드 매개 변수에 런타임 값을 할당하려면 어떻게해야합니까? 빌드 매개 변수를 설정하고 % config.buildMode %를 드롭 다운으로 설정하고 IF 조건과 같은 것을 갖춰 buildmode 선택에 따라 다른 매개 변수에 다른 값을 할당해야합니다.TeamCity 조건부 매개 변수 값

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

단지 설정된 모든 매개 변수 –

답변

0

조건부로 생각할 수 없습니다. Ales는 각 매개 변수가 수신 스크립트에 의해 구문 분석 될 수있는 문자열 매시업을 포함 할 수 있음을 의미합니다. 예를 들어,

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

오히려 늦어도 파티가 가능합니다. 조건부 (예 : TargetServerName)로 만들려는 값에 대한 추가 매개 변수를 추가하고 값은 비워 둡니다. 그런 다음 프로세스 시작시 powershell 빌드 단계를 추가하고 다음과 같은 스크립트를 입력하십시오.

$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']" 

마지막 줄은 마술입니다. 결과를 출력함으로써 팀시는 기본적으로 TargetServerName 매개 변수를 설정하여이를 실행합니다. 그런 다음 후속 빌드 단계에서 매개 변수를 사용할 수 있습니다. 추가 정보에 대한

+0

는 https://confluence.jetbrains.com/display/TCD10/Build+Script+Interaction+with+TeamCity#BuildScriptInteractionwithTeamCity-changingBuildParameterAddingorChangingaBuildParameterfromaBuildStepAddingorChangingaBuildParameter에서 문서를 읽어 – stun