2009-06-24 3 views
3

Je veux créer créer une étiquette (étiquette) dans le SVN avec la version d'un fichier.TeamCity: étiquetage VCS (Subversion) avec la version d'un fichier d'artefact

Je renomme déjà l'artefact en obtenant la version de fichier de l'exécutable principal produit par la construction. Tels que: MyInstaller-1.2.3.1.exe. Maintenant, je veux créer une balise dans le SVN appelé /tags/1.2.3.1. Je ne pouvais pas trouver un moyen de mettre une telle chose dans le modèle d'étiquetage.

Actuellement, mon étiquetage est juste « % system.build.number% »

Toute idée sur la façon de le faire?

J'utilise TeamCity Professional Version 4.5.3 (build 9035)

Répondre

6

Comme quelqu'un l'a mentionné, vous pouvez sortir le numéro de version lors de l'exécution du script de construction, et TeamCity utiliserez cette sortie pour étiqueter la construction. Par exemple, j'étiquette ma construction avec la même version que j'ai mise dans AssemblyInfo.cs. Une partie de cette version (Major, Minor) est déjà dans le fichier, l'autre partie (Build, Revision) est ajoutée pendant la construction.

De mon script msbuild:

<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> 

que vous venez de la sortie de la version lors de la construction le format est en fait ##teamcity[buildNumber '<buildnum>']

0

Si vous utilisez Ant, peut-être vous devriez obtenir SVNAnt.jar et essayer this. La convention que j'ai vu pour l'étiquetage est major.minor.svn (et .build si vous utilisez CI).

+0

J'utilise sln2008 coureur de TeamCity et aussi mon étiquetage fait par TeamCity ainsi. Tous les autres scripts de construction personnalisés "honteusement" écrits en tant que script Post-Build dans le projet VS.NET. –

+0

Ce que je veux vraiment faire un tag indique la version actuelle, la version que les gens téléchargent et utilisent. Je pensais que ce serait le moyen le plus facile de le marquer. –

+0

Subversion ne lira pas votre avis sur la version major.minor. Vous devriez construire cela dans votre nom de tag. Ce sera suffisant pour les gens, à mon avis. – duffymo

0

Vous pouvez inclure le numéro de révision SVN à votre numéro de build TeamCity. Pour votre modèle de numéro de build dans Teamcity, utilisez quelque chose comme {build.vcs.number.1} dans le champ de modèle de numéro de build. Après ce numéro de version contiendra le numéro de révision SVN réel, et votre modèle d'étiquetage% system.build.number% le contiendra également.

Hope this helps, KIR

+0

J'essaie d'étiqueter SVN en utilisant la version d'un fichier d'artefact. –

+0

Vous pouvez définir le numéro de build à partir de votre script de génération et le transmettre au serveur. Voir docs TeamCity pour l'interaction de script de construction avec TeamCity. – KIR

Questions connexes