2011-11-01 2 views
4

Teamcity 빌드는 현재 1.0.0. [SVN REVISION] 형식의 빌드 번호를 생성하여 MSBUILD로 전달합니다.Teamcity 맞춤 빌드 번호 생성기

이 형식을 1.0. [DLL 버전]. [SVN REVISION] 형식으로 변경해야합니다. 종속 된 dll의 점 분리 버전을 삽입합니다. 예를 들어, 종속 DLL이 버전 1.2.3.4 인 경우 빌드 번호는 1.0.1234가됩니다. [SVN REVSION].

종속 DLL은 빌드 소스의 일부이므로 빌드 매개 변수와 약간의 exe로 버전 정보를 interegates 할 수 있지만 UI를 통해이를 통합 할 방법을 찾을 수 없기를 바랍니다.

가능하다면 어떤 아이디어가 있습니까?

답변

10

빌드 스크립트를 실행하는 동안 빌드 번호를 출력 할 수 있으며 teamcity는 해당 출력을 사용하여 빌드에 레이블을 지정합니다. 예를 들어 AssemblyInfo.cs에 넣은 것과 동일한 버전으로 내 빌드에 레이블을 지정합니다. 이 버전의 일부 (Major, Minor)가 실제로 파일에 이미 있고 다른 부분 (Build, Revision)이 빌드 중에 추가됩니다. 내 msbuild를 스크립트에서

: 형식이 내가 필요 정확히 즉 ##teamcity[buildNumber '<buildnum>']

+0

입니다 빌드시

<Target Name="Setup"> <!-- Version.txt contains the major and minor version numbers, The build number and revision come from environment variables in the next step --> <Version VersionFile="Version.txt" BuildType="None" RevisionType="None"> <Output TaskParameter="Major" PropertyName="Major" /> <Output TaskParameter="Minor" PropertyName="Minor" /> </Version> <!-- If you want to build a release without going through the build server, you should define the following 2 environment variables when running this build script --> <!-- BUILD_NUMBER environment variable supplied by the build server --> <CreateProperty Value="$(BUILD_NUMBER)"> <Output TaskParameter="Value" PropertyName="Build" /> </CreateProperty> <!-- BUILD_VCS_NUMBER environment variable supplied by the build server --> <CreateProperty Value="$(BUILD_VCS_NUMBER)"> <Output TaskParameter="Value" PropertyName="Revision" /> </CreateProperty> <AssemblyInfo CodeLanguage="CS" OutputFile="Properties\VersionInfo.cs" AssemblyVersion="$(Major).$(Minor).$(Build).$(Revision)" AssemblyFileVersion="$(Major).$(Minor).$(Build).$(Revision)" /> <!-- Tell the build server what our actual build number is --> <Message Text="##teamcity[buildNumber '$(Major).$(Minor).$(Build).$(Revision)']" /> </Target> 

그냥 출력 버전. 감사! – Matt

+0

이 기능에 대한 현재 문서는 [여기] (https://confluence.jetbrains.com/display/TCD9/Build+Script+Interaction+with+TeamCity#BuildScriptInteractionwithTeamCity-ReportingBuildNumber)입니다. –