Pergunta

Eu quero criar criar uma etiqueta (tag) no SVN com a versão do arquivo.

Eu já estou renomeando o artefato, obtendo a versão do executável principal produzido pelo acúmulo de arquivos. Tais como: MyInstaller-1.2.3.1.exe. Agora eu quero criar uma tag no SVN chamado /tags/1.2.3.1. Eu não poderia encontrar uma maneira de definir tal coisa no padrão de marcação.

Atualmente o meu rotulagem é apenas "% system.build.number%"

Qualquer idéia sobre como fazer isso?

Eu estou usando TeamCity Professional Versão 4.5.3 (compilação 9035)

Foi útil?

Solução

Como alguém mencionou, você pode saída o número de compilação durante a execução do script de construção, e TeamCity vai usar a saída para rotular a compilação. Por exemplo, eu rotular meu construir com a mesma versão que eu colocar em AssemblyInfo.cs. Parte dessa versão (maior, menor) é, na verdade, no arquivo já, por outro (Build, Revisão) é adicionado durante a compilação.

De meu 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 você acabou de saída a versão durante a construir o formato é ##teamcity[buildNumber '<buildnum>']

Outras dicas

Se você estiver usando Ant, talvez você deve começar SVNAnt.jar e tentar este .

A convenção que eu já vi para a rotulagem é major.minor.svn (e .construa se você estiver usando CI).

Você pode incluir o número de revisão do SVN para o seu número de TeamCity construção. Para o seu padrão de número de compilação em TeamCity, use algo como {build.vcs.number.1} no campo padrão de número de compilação.

Depois que número de compilação irá conter o número de revisão do SVN real, e seu padrão de marcação% system.build.number% irá contê-lo também.

Espero que isso ajude, KIR

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top