2016-06-30 8 views
4

私はPowershellを使ってTeamcityでビルド番号フォーマットを設定しようとしています(このOctopus Deploy blog postのようなものです)。Teamcityでビルド番号を設定するにはどうすればよいですか?

しかし、Teamcityがサービスメッセージを処理する方法が変更されたかどうか、またはそれが機能していないために間違っているかどうかはわかりません。

私は、ビルド設定の最初のステップとして、次のPowershellスクリプトを持っている:

$buildCounter = "%build.counter%" 
$buildConfig = "%system.buildconfig%" 
$version = "%system.majorMinorVersion%" 

$branch = "%vcsroot.branch%" 

if ($branch.Contains("/")) 
{ 
    $branch = $branch.substring($branch.lastIndexOf("/")).trim("/") 
} 

$buildNumber = "${version}.${buildCounter}-${branch}" 

Write-Host "##teamcity[buildNumber '$buildNumber']" 

をだから私はこれを試してみてください、if文(私も5行目に$branch = "%teamcity.build.branch%"を試してみました) Octopus Deployの例では$ branchが実際の値%vcsroot.branch%に設定されているが、Teamcityに書き出す結果は文字通り##teamcity[buildNumber '$buildNumber']であるため、実行されません。しかし、これは機能しているようですが、ビルド番号が/になることはありません。そのため、ブランチはmasterではなくrefs/head/masterに設定されています。

どこが間違っていますか?

+0

if( "%teamcity.build.branch%"。StartsWith( "..."))などのPowerShellを使用し、ビルド番号を書き込むための正しい構文も得ています。 ifステートメントの後にWrite-Host $ブランチがある場合、それは何から出力されますか? –

答えて

3

スクリプトの最後の行があるべきようだ:

Write-Host "##teamcity[buildNumber '${buildNumber}']" 

注:スクリプトが動作するために、作るチームシティービルドステップのインラインスクリプト(として指定する必要がある場合はチームシティー%-referencesに作業)。

ところで、あなたは+を使用して、チームシティー表示短い支店名作ることができます:あなたはPowerShellを使用している場合は、VCSのルート

1

にレフリー/ヘッド/ * branch specificationをビルド番号は、環境変数としてあなたのエージェントに提供されています以下のようにpowershellで指定します。

$env:BUILD_NUMBER 

これは、ビルド設定のUIで設定できる番号です。

関連する問題