2015-10-29 8 views
9

TeamCityからOctopusDeployにブランチ名を渡して、どのブランチから配備されたのかを簡単に追跡できるようにしようとしています。TeamCityのブランチ名からスラッシュを削除する

これを行うには、OctopusDeploy UIでこれを表示できるように、バージョン番号(またはOctopackで構築されたNugetパッケージ)にブランチ名を追加したいと思います。

私たちは私たちの枝の一部が失敗しoctopack原因スラッシュが含まれているgitのフローを使用していることを除いて、これは、正常に動作します(ファイル名はスラッシュを含めることはできませんように):

+:refs/heads/(feature/*) 
+:refs/heads/(release/*) 
+:refs/heads/(hotfix/*) 

交換する方法はあります私たちのブランチの名前を変更することなく、TeamCityの何か他のものとスラッシュしますか?

答えて

4

ビルドスクリプトを使用すると、ビルドプロセスと対話し、スラッシュを置き換えるカスタムビルド番号を指定できます。詳細については、TeamCity docsを確認してください。

Hereビルド番号を変更する方法については、C#の例があります。

例では、ビルド番号をめちゃくちゃにするために、あなたは(上記のリンクから抽出された)のような内容でCommonAssemblyInfo.csを追加することができます助け

$ww = ([Math]::Floor([DateTime]::Now.DayOfYear/7)+1) 

Write-Host "##teamcity[buildNumber '%major.minor%.$ww.%build.counter%']" 
$fileLocation = Join-Path -Path "%teamcity.build.checkoutDir%" -ChildPath "\SourceDir\AssemblyInfo.cs" 

$oldValue = "AssemblyFileVersion\(""(\d+)\.\d+\.\d+\.\d+""\)" 
$newValue = [string]::Concat("AssemblyFileVersion(""%major.minor%.", $ww, ".%build.counter%", """)") 

(get-content $fileLocation) | foreach-object {$_ -replace $oldValue, $newValue} | set-content $fileLocation 
+0

おかげで、。あなたがいくつかのサンプルコードを追加した場合(私はpowershellを使用して終了しましたが、何も問題ありません)、外部リソースに依存しないので、あなたに賞金を授与します。 –

+0

@リチャードダルトンあなたのために働いてくれてうれしいです。 – dan