Pregunta

Quiero crear crear una etiqueta (etiqueta) en el SVN con la versión de un archivo.

Ya estoy cambiando el nombre del artefacto al obtener la versión del archivo del ejecutable principal producido por la compilación. Tales como: MyInstaller-1.2.3.1.exe. Ahora quiero crear una etiqueta en el SVN llamada /tags/1.2.3.1. No pude encontrar una manera de establecer tal cosa en el patrón de etiquetado.

Actualmente mi etiquetado es solo "% system.build.number% "

¿Alguna idea sobre cómo hacer esto?

Estoy usando TeamCity Professional versión 4.5.3 (compilación 9035)

¿Fue útil?

Solución

Como alguien mencionó, puede generar el número de compilación durante la ejecución del script de compilación, y teamcity usará esa salida para etiquetar la compilación. Por ejemplo, etiqueto mi compilación con la misma versión que puse en AssemblyInfo.cs. Parte de esa versión (Mayor, Menor) ya está en el archivo, la otra parte (Compilación, Revisión) se agrega durante la compilación.

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

acaba de generar la versión durante la compilación, el formato es ##teamcity[buildNumber '<buildnum>']

Otros consejos

Si está utilizando Ant, tal vez debería obtener SVNAnt.jar e intentar esto .

La convención que he visto para etiquetar es major.minor.svn (y .build si está usando CI).

Puede incluir el número de revisión SVN en su número de compilación de TeamCity. Para su patrón de número de compilación en Teamcity, use algo como {build.vcs.number.1} en el campo de patrón de número de compilación.

Después de ese número de compilación contendrá el número de revisión SVN real, y su patrón de etiquetado% system.build.number% también lo contendrá.

Espero que esto ayude, KIR

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top