2014-06-18 4 views
19

PowerShell을 통해 간단한 스크립트를 작성하여 하나의 폴더로 압축하고 Script.ps1으로 전화를 걸 수 있습니다. Jenkins가 새 빌드를 수행 할 때마다 스크립트를 실행하고 싶지만 Zip 파일의 이름을 BUILD_NUMBER으로하고 싶습니다.Powershell 스크립트에서 Jenkins 변수를 사용하는 방법

젠킨스의 현재 빌드 번호 인 PowerShell에 변수를 어떻게 만들 수 있습니까? 현재로서는 구성의 실행 쉘 섹션에서 Script.ps1이라고 부릅니다.

답변

4

그냥 스크립트의 상단에 Param를 사용

Param($BuildNumber) #must be first statement in script 
# your current script goes here 

는 당신은 젠킨스의 인수로 BUILD_NUMBER을 통과하는 스크립트를 호출 할 수 있습니다. 인수를 사용하여 Powershell 스크립트를 호출하는 방법은 this question을 참조하십시오.

45

저는 젠킨스에 익숙하지 않지만, BUILD_NUMBER은 환경 변수라고 생각합니다.

PowerShell에서 액세스하기 위해 사용 $env:BUILD_NUMBER

일예 7-ZIP을 사용하는 경우 에 인수를 추가 할 수 있습니다.

7z.exe a "$env:BUILD_NUMBER.zip" C:\Build\Path 
+0

저는 젠킨스에서 이것을 시도해 보았습니다. 고맙습니다! –

+4

감사합니다. 솔루션에 녹색 체크 표시가있는 이유를 모르겠습니다. 이것이 진정한 해결책입니다. – user952342

0

Powershell 플러그인을 사용할 수도 있습니다 (here 참조).

그런 다음 사용 가능한 환경 변수를 사용할 수 있습니다 (플러그인의 docu 참조). 액세스가 상당히 (내가 아는 한) 매우 신빙성이 있습니다 :

(Get-Content ./Sources/SlmMachineControl/GUI/Project1.rc).replace("`"FileVersion`", `"1.0.0.0`"" ,"`"FileVersion`" `"2.3.$($env:BUILD_NUMBER).0`"") | Set-Content ./Sources/SlmMachineControl/GUI/Project1.rc 

또한 큰 따옴표가 이스케이프됩니다. 꽤 오랜 시간이 걸렸습니다.

관련 문제