проверка последней версии в контроле версий - PullRequest
0 голосов
/ 09 мая 2011

В настоящее время я пишу сценарий ANT, который будет включать в себя некоторый интеллект для проверки вещей.Я использую SnapshotCM от True Blue Software в качестве контроля версий и использую CruiseControl в качестве основы для моей ночной сборки.По сути, мне нужно всегда проверять наличие последней версии, найденной в моем контроле версий, и выполнять команды.В этом случае вот пример:

<project name="nightly_build" default="main" basedir="checkout">
    <target name="init">
        <property file="initial.properties"/>
    </target>
    <target name="main" depends="init">
            <!-- need some code to set variable -->
            <!-- need some code to increment variable -->
        <!-- need some code here to check for the latest version -->
        <exec executable="C:/Program Files/True Blue Software/SnapshotCM/wco.exe">
            <arg line='-f -R "C:/Work/7.10.000_Tip/7.10.000_Tip_GUI_TEST/"'/>
        </exec>
    </target>
</project>

В приведенном выше коде я загрузлю файл «initial.properties».Алгоритм должен быть следующим:

  1. загрузить файл начальных свойств

  2. получить номер_строения

  3. увеличить build_number на 1 (пусть эта новая переменная будет X)

  4. если X найден, увеличить X на 1 (если не найден, перейти к 6.)

  5. если X найден, повторите 4 (пока X не будет найден)

  6. , иначе используйте номер сборки внутри <arg line ='-f -R "C:/..../7.10.100.X..../"'/>

Файл initial.properties выглядит следующим образом:

Major_Version=7
Minor_Version=10
Project_Number=100
Build_Number=036
Product_Version=${Major_Version}.${Minor_Version}.${Project_Number}.${Build_Number}

Кто-нибудь может мне помочь?

1 Ответ

1 голос
/ 09 мая 2011

Муравей не является языком программирования.Это язык матрицы зависимостей.

Это означает, что вы не указываете порядок выполнения в Ant.Муравей вычислит порядок, необходимый для выполнения целей.Это также означает, что Ant не имеет возможности делать циклы или даже изменять значение свойства после его установки.

Есть несколько пакетов, основанных на Ant.Старый резерв - Antcontrib .В Antcontrib есть концепция переменных , которые похожи на изменяемые свойства.Он также имеет различные циклические структуры.Однако я не уверен, что задачи <foreach> или <for> будут выполнять то, что вы хотите ...

Последовательный поиск следующего номера сборки - это то, что вы можете сделать в сценарии оболочки.На самом деле, я очень рекомендую это.

Я использую Ant только для сборок и храню свои функции CM вне моего файла build.xml.Вместо этого я полагаюсь на свою систему сборки, чтобы делать все, что не связано с самой сборкой.Это включает в себя проверку кода, сохранение артефактов и компиляцию модульных тестов.Таким образом, если я изменю способ использования своей системы непрерывной сборки или системы контроля версий, мне не нужно изменять мои build.xml файлы.

...