Our Teamcity build currently generates build numbers in the format 1.0.0.[SVN REVISION] which it passes through to MSBUILD.
I need to change this to the format 1.0.[DLL VERSION].[SVN REVISION] where we insert a de-dotted version of a dependant dll in. For example if our dependant dll is version 1.2.3.4 the generated build number would be 1.0.1234.[SVN REVSION].
The dependant dll is part of the build source so I had hoped I could do something with build parameters and a little exe that interegates it for the version info but cannot see any way to incorporate this through the UI.
Any ideas if this is possible?
You can output the build number during the execution of the build script, and teamcity will use that output to label the build. For example, I label my build with the same version that I put into AssemblyInfo.cs. Part of that version (Major, Minor) is actually in the file already, the other part (Build, Revision) gets added during the build.
From my msbuild script:
<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>
you just output the version during the build the format is ##teamcity[buildNumber '<buildnum>']
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With