2016-08-23 1 views
0

저는 teamcity에 프로젝트를 추가하고 PowerShell 스크립트를 추가하여 일부 구성 설정을 변경하고 압축 아티팩트를 생성해야합니다. Teamcity 외부에서 스크립트 파일을 빌드하고 테스트했지만 구축 중에 작동하게하려면 이슈가 빌드 된 경로를 얻어야합니다.teamcity 이슈 PathTeamCity를 powershell 스크립트에 삽입하십시오.

c:\artifacts\myproject\build\38 아래의 코드에서 항상 최신 빌드 디렉토리를 선택하는 teamcity 매개 변수로 바꿀 수 있습니까?

#Find and replace various app.config settings 
$location = C:\Artifacts\MyProject\Build\38\myApp\myConfig.config"; 
(Get-Content $location) | 
ForEach-Object { $_ -replace '<add key="platform" value="xxxx"/>', '<add key="platform" value="test"/>' } | 
Set-Content $location 

#Should take source directory and create a zip file from it 
$source = "C:\Artifacts\MyProject\Build\38\myApp\" 
$destination = "C:\Artifacts\FrontOfficeApi\Build\38\artifact.zip" 

GenerateZipFile -DestinationFilePath $destination -SourcePath $source 

많은 감사

답변

0

$buildDirectory = "%teamcity.build.chec‌​koutDir%"는 당신에게 소스 코드를 체크 아웃 된 디렉토리를 줄 것이다, 그래서 당신은 거기에서 상대적으로 작업 할 수 있습니다. 이것은 PowerShell을 소스 코드로 실행하는 경우입니다. 그렇지 않으면 동일한 변수를 사용하여 PowerShell 스크립트에 매개 변수를 전달할 수 있습니다.

희망이 있습니다.

+0

응답 해 주셔서 감사합니다. 필자가 결정한 것은 teamcity.build.checkoutDir의 값을 실제 파일로 출력하려고 시도하는 것입니다. 이것은 몇 가지 이유 때문이었습니다. 1. 팀워크가 어떻게 작동하는지에 대한 내 자신의 지식과 2. 시작하는 데 훨씬 간단한 스크립트입니다. – kcis8rm

+0

그러나 PS 빌드 단계를 추가하고 빌드를 실행하면 호환 빌드 에이전트가 없다는 오류가 발생합니다. 새로운 단계를 사용 중지하면 빌드가 정상적으로 실행되었습니다. 설정은 다음과 같습니다 : Powershell 실행 모드 : 임의, Bitness : x86, 스크립트 : 소스 코드, 스크립트 : $ buildDirectory = "% teamcity.build.chec koutDir %" $ buildDirectory | Out-File c : \ debug.txt. 스크립트 실행 모드 : 외부 파일에서 .ps1을 실행합니다. 어떤 충고라도 감사 할 것입니다. – kcis8rm

관련 문제