1

ビルド カウンターのみとして TeamCity から渡される build_number のプロパティを含むプロパティ グループがあります。TeamCity で設定されているビルド番号の形式は、カウンターの単純な {0} です。

<PropertyGroup>
  <Major>10</Major>
  <Minor>1</Minor>
  <Build>$(BUILD_NUMBER)</Build>
  <Release>0</Release>
   ...
</PropertyGroup>

メジャー、マイナー、およびリリースの各プロパティは、ソース管理のファイルの値から更新されます。

TeamCity がビルドを完全な 4 パートのビルド参照 (カウンターだけでなく) としてログに記録するように、次のように設定しました。

<TeamCitySetBuildNumber BuildNumber="$(Major).$(Minor).$(Build).$(Release)" />

ただし、$(Build) プロパティを参照すると、4 部分のビルド参照に設定され、TeamCitySetBuildNumber を使用して設定する前に $(BUILD_NUMBER) を参照する作成したプロパティも 4 部分の参照で上書きされます。 .

NBシステムメッセージで変更しました:

<Message Text="##teamcity[buildNumber '$(Major).$(Minor).$(Build).$(Release)']" />

しかし、全体的な効果は同じです。

上記の BuildNumber を設定した後、ビルド カウンター (のみ) を参照するにはどうすればよいですか?

4

1 に答える 1

2

プロジェクト ファイルを使用している場合は、*.vbproj または *.csproj ファイルの AfterBuild セクションで TeamCitySetBuildNumber コマンドを呼び出すことができます。

<Target Name="AfterBuild">
    <TeamCitySetBuildNumber BuildNumber="$(Major).$(Minor).$(Build).$(Release)" />
</Target>

ソリューション ファイルを使用している場合は、ソリューション ファイルを呼び出す *.proj ファイルを作成し、その後 TeamCitySetBuildNumber コマンドを呼び出します (ただし、このようにターゲット内で TeamCitySetBuildNumber コマンドを呼び出すことができるかどうかはわかりません... ):

<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003" DefaultTargets="SetBuildNumber">

<PropertyGroup>
  <Major>10</Major>
  <Minor>1</Minor>
  <Build>$(BUILD_NUMBER)</Build>
  <Release>0</Release> 
</PropertyGroup>

  <Target Name="Build">
    <Message Text="Build task called... " Importance="high"/>
    <MSBuild Projects="$(teamcity_build_checkoutDir)\your_solution.sln" Properties="Configuration=Release"/>
  </Target>

  <Target Name="SetBuildNumber" DependsOnTargets="Build">
    <Message Text="Setting build number back to TeamCity... " Importance="high"/>
    <TeamCitySetBuildNumber BuildNumber="$(Major).$(Minor).$(Build).$(Release)" />
  </Target>

</Project>
于 2012-10-18T10:05:34.733 に答える