2014-09-18 16 views
5

Sto cercando di seguire alcune indicazioni da this article che descrive le best practice di NuGet e SemVer.Come azzerare il contatore delle build in TeamCity

Point # 3 afferma che avrei dovuto "Usa gli zeri nel suffisso numerico al prerelease incremento automatico", ma sto lottando lavorando come posso azzerare pad il parametro build.counter in TeamCity in modo che ricevo 0025 invece di 25.

Qualcuno ha un meccanismo per gestire questo?

risposta

2

Se fossi in te, vorrei fare uso di GitVersion. Include un'opzione per utilizzare una versione LegacySemVerPadded del numero di versione generato. Ci sono vari altri alternatives of the generated version number pure.

C'è un Meta Runner TeamCity per esso here.

GitVersion esegue il calcolo del nuovo numero di versione semantica per te, in base allo stato corrente del repository.

In caso contrario, si, eseguire il lavoro altrove, in PowerShell, quindi utilizzare TeamCity Service Messages per modificare il numero di build in TeamCity. È possibile trovare un modulo PowerShell here.

Fornisce alcune funzioni di supporto per fare proprio questo.

+0

Grazie - darò un'occhiata a GitVersion. – starskythehutch

+0

@starskythehutch è ciò che stiamo usando in-house e che cosa farò in questo progetto, https://github.com/chocolatey/ChocolateyGUI, quindi sentiti libero di fare qualsiasi domanda :-) –

4

Si potrebbe scrivere uno script PowerShell come:

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

e chiamare da un passo TeamCity accumulo e passare il parametro %build.number% qualcosa come:

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

Se il numero di build è un semplice contatore (1, 2, 3, 4, ...), è possibile eseguire ciò utilizzando un solo liner PowerShell in TeamCity: "" # teamcity [buildNumber '{0}'] "-f ([Int32]% build.number%). ToString (" 0000 ") | Write-Host' –