Question

Je souhaite créer une étiquette (étiquette) dans le SVN avec la version d'un fichier.

Je suis déjà en train de renommer l'artefact en récupérant la version du fichier de l'exécutable principal produite par la construction. Tels que: MyInstaller-1.2.3.1.exe. Maintenant, je veux créer une balise dans le SVN appelée /tags/1.2.3.1. Je ne pouvais pas trouver un moyen de définir une telle chose dans le modèle d'étiquetage.

Actuellement, mon libellé est juste & ";% system.build.number% &";

Avez-vous une idée de la façon de procéder?

J'utilise TeamCity Professional version 4.5.3 (build 9035)

Était-ce utile?

La solution

Comme l’a mentionné une personne, vous pouvez générer le numéro de version lors de l’exécution du script de génération, et Teamcity utilisera cette sortie pour étiqueter la construction. Par exemple, je marque ma construction avec la même version que celle que j'ai mise dans AssemblyInfo.cs. Une partie de cette version (majeure, mineure) se trouve déjà dans le fichier, l'autre partie (construction, révision) est ajoutée lors de la construction.

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

vous venez de sortir la version lors de la construction du format est ##teamcity[buildNumber '<buildnum>']

Autres conseils

Si vous utilisez Ant, vous devriez peut-être obtenir SVNAnt.jar et essayer this .

La convention d'étiquetage que j'ai vue est major.minor.svn (et .build si vous utilisez CI).

Vous pouvez inclure un numéro de révision SVN dans votre numéro de version TeamCity. Pour votre modèle de numéro de construction dans Teamcity, utilisez le type {build.vcs.number.1} dans le champ du modèle de numéro de construction.

Après ce numéro de build contiendra le numéro de révision SVN actuel et votre modèle de libellé% system.build.number% le contiendra également.

J'espère que ça aide, KIR

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top