2014-09-18 18 views
5

NuGet ve SemVer en iyi uygulamalarını açıklayan this article kılavuzundan bazılarını takip etmeye çalışıyorum.TeamCity'de yapı sayacını sıfırlama nasıl yapılır

Nokta # i "Kullanım otomatik artış önsürümlerine sayısal soneki sıfırları lider" olmalıdır ama 0025 yerine 25 olsun ki ben yastığı TeamCity içinde build.counter parametresini sıfır nasıl çalışma dışarı mücadele ediyorum 3 devletler.

Bunu halletmek için bir mekanizma var mı?

cevap

2

, ben yapacak GitVersion kullanımı. Oluşturulan sürüm numarasının bir LegacySemVerPadded sürümünü kullanma seçeneği içerir. Ayrıca diğer çeşitli alternatives of the generated version number vardır.

Bunun için bir TeamCity Meta Runner var here.

GitVersion, deponuzun geçerli durumuna bağlı olarak sizin için yeni Semantik Sürüm Numarasını hesaplama işini yapar.

Aksi halde, başka bir yerde, PowerShell'de iş yapın ve TeamCity'de yapı numarasını değiştirmek için TeamCity Service Messages kullanın. PowerShell Modülü here'u bulabilirsiniz.

Sadece bunu yapmak için bazı yardımcı işlevler sağlar.

+0

Teşekkürler - GitVersion'a bir göz atacağım. – starskythehutch

+0

@starskythehutch, şirket içinde kullandığımız şeydir ve bu projede kullanacağım şey, https://github.com/chocolatey/ChocolateyGUI, bu yüzden herhangi bir soruyu sormaktan çekinmeyin :-) –

4

Sen gibi bir powershell komut dosyası yazabilirsiniz:

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

Ve TeamCity yapı adımdan diyoruz ve benzeri parametreyi %build.number% şey pass: Yerinde olsaydım

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

Yapı numaranız basit bir sayaçsa (1, 2, 3, 4, ...), bunu TeamCity'de bir PowerShell tek astar kullanarak gerçekleştirebilirsiniz: "## teamcity [buildNumber '{0}'] "-f ([Int32]% build.number%.) ToString (" 0000 ") Üste | Write-Host' –