Вопрос по build-server, label, continuous-integration, svn, teamcity – TeamCity: маркировка VCS (Subversion) с помощью версии файла артефакта

3

Я хочу создать метку (тег) в SVN с помощью версии файла.

Я уже переименовываю артефакт, получая версию файла основного исполняемого файла, созданного при сборке. Такие как:MyInstaller-1.2.3.1.exe, Теперь я хочу создать тег в SVN под названием/tags/1.2.3.1, Я не смог найти способ установить такую вещь в шаблоне маркировки.

В настоящее время моя маркировка просто "% system.build.number%".

Есть идеи о том, как это сделать?

I'm using TeamCity Professional Version 4.5.3 (build 9035)

Ваш Ответ

3   ответа
0

возможно, вам следует скачать SVNAnt.jar и попробоватьэтот.

Соглашение, которое я видел для маркировки, это major.minor.svn (и .build, если вы используете CI).

на самом деле я использую бегунок sln2008 от TeamCity, а также мою маркировку, сделанную TeamCity. Все другие пользовательские сценарии сборки "стыдно" написан как скрипт Post-Build в проекте VS.NET. dr. evil
Subversion не прочтет ваши мысли о выпуске Major.minor. Вы должны встроить это в свое имя тега. По моему мнению, этого будет достаточно для людей.
То, что я действительно хочу сделать тегом, указывает на фактическую версию релиза, версию, которую люди скачивают и используют. Я подумал, что это будет самый простой способ пометить это. dr. evil
Обычно TeamCity поддерживает переменные, но я не могу найти способ поместить свою собственную переменную, я думаю, что это единственный способ сообщить об этом TeamCity. В противном случае, как вы сказали, мне нужно сделать это вручную в моих сценариях после сборки. dr. evil
6

вы можете вывести номер сборки во время выполнения скрипта сборки, и teamcity будет использовать этот вывод для маркировки сборки. Например, я помечаю свою сборку той же версией, которую я поместил в AssemblyInfo.cs. Часть этой версии (Major, Minor) уже находится в файле, другая часть (Build, Revision) добавляется во время сборки.

Из моего скрипта 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>

вы просто выводите версию во время сборки, формат##teamcity[buildNumber '<buildnum>']

0

Для вашего шаблона номера сборки в Teamcity используйте что-то вроде {build.vcs.number.1} в поле шаблона номера сборки.

После этого номер сборки будет содержать фактический номер ревизии SVN, и шаблон маркировки% system.build.number% будет содержать его также.

Надеюсь это поможет, КИР

Я пытаюсь пометить SVN, используя версию файла артефакта. dr. evil
Вы можете установить номер сборки из вашего скрипта сборки и передать его на сервер. См. Документы TeamCity для взаимодействия сценариев сборки с TeamCity.

Похожие вопросы