2014-09-18 4 views
5

NuGet 및 SemVer 모범 사례를 설명하는 this article의 지침을 따르려고합니다.TeamCity에서 빌드 카운터를 제로 패하는 방법

포인트 #에게 나는 "사용이 자동 증가 prereleases에 숫자 접미사에 0을 선도"해야하지만 0025 대신 25를 얻을 수 있도록 내가 패드에게 인 TeamCity에서 build.counter 매개 변수를 제로 수있는 방법을 작업 고군분투 3 상태.

아무도이 문제를 처리 할 수있는 메커니즘이 있습니까?

답변

2

것은, 내가 만들 것 GitVersion을 사용하십시오. 생성 된 버전 번호의 LegacySemVerPadded 버전을 사용하는 옵션이 포함되어 있습니다. 다양한 기타 alternatives of the generated version number도 있습니다.

TeamCity Meta Runner가 있습니다 (here).

GitVersion은 저장소의 현재 상태를 기반으로 새로운 의미 버전 번호를 계산하는 작업을 수행합니다.

PowerShell에서 다른 곳에서 작업 한 다음 TeamCity Service Messages을 사용하여 TeamCity에서 빌드 번호를 변경하십시오. PowerShell Module here을 찾을 수 있습니다.

이렇게하는 것은 도우미 기능을 제공합니다.

+0

감사합니다. GitVersion을 살펴 보겠습니다. – starskythehutch

+0

@starskythehutch 그것은 우리가 사내에서 사용하고있는 것이며,이 프로젝트 (https://github.com/chocolatey/ChocolateyGUI)에서 무엇을 사용하게 될지 궁금하므로 언제든지 질문하십시오. –

4

당신은 같은 파워 쉘 스크립트를 작성할 수 있습니다

function Update-BuildNumber([string]$buildNumber) 
{ 
    $VersionComponents = $buildNumber.Split(".") 
    $buildNumber = "" 
    foreach($VersionComponent in $VersionComponents) 
    { 
     $index = [array]::IndexOf($VersionComponents, $VersionComponent) 
     if (($index + 1) -eq $VersionComponents.Count) 
     { 
      $buildNumber += "00" + $VersionComponent 
     } 
     else 
     { 
      $buildNumber += $VersionComponent + "." 
     } 
    } 
    Write-Output "##teamcity[buildNumber '$buildNumber']" 
} 

을 그리고 인 TeamCity 빌드 단계에서 호출과 같은 매개 변수를 %build.number% 뭔가를 통과 : 내가 당신이라면

Update-BuildNumber -buildNumber %build.number% 
+3

빌드 번호가 간단한 카운터 (1, 2, 3, 4, ...) 인 경우 TeamCity에서 PowerShell 한 개의 라이너를 사용하여이를 수행 할 수 있습니다. '## teamcity [buildNumber'{0} '] "-f ([Int32] % build.number %). ToString ("0000 ") | Write-Host' –