Среда непрерывной интеграции для инструмента IBM System Planning Tool

Как настроить проведение сборки по ночам

В статье подробно описывается пошаговая процедура конфигурирования собственной среды непрерывной интеграции сборок для инструмента IBM® System Planning Tool (SPT) без использования каких-либо других публично доступных инструментов для непрерывной интеграции. Эта среда предусматривает следующие функции: извлечение и сборка кода по расписанию, исполнение пакета тестов по расписанию и генерация отчета о покрытии кода по расписанию. Вы можете использовать данную статью в качестве справочника при настройке собственной среды непрерывной интеграции для любого из своих проектов, поскольку в ней содержатся пошаговые указания по конфигурированию. Это значительно уменьшит ваши затраты времени на анализ, исследование и разработку среды проекта.

Сандхия Рани, инженер по системному программному обеспечению, IBM

Photo of SandhyaСандхия Рани (Sandhya Rani) — Java-разработчик и руководитель группы по продукту IBM System Planning Tool (SPT). В процессе работы с этим продуктом она исследовала и настроила среду непрерывной интеграции для одного из проектов. Эта работа была проделана с целью дополнительного повышения качества вышеупомянутого проекта. С. Рани занимается разработкой программного обеспечения более семи лет. Она является обладателем степени магистра по вычислительной технике, полученной в Университете Крайст, и степени бакалавра по вычислительной технике, полученной в Технологическом университета Висвесварая. С. Рани опубликовала в журнале International Journal of Computer Applications (IJCA) три статьи на техническую тематику, посвященные способам реализации персистентности объектов и приемам выравнивания нагрузки.



04.08.2014

Введение

Инструмент IBM System Planning Tool (SPT) – это веб-приложение, которое помогает пользователям проектировать конфигурации систем в соответствии со своими потребностями. С помощью этого инструмента пользователь может сконфигурировать совершенно новую систему либо спланировать систему на основе существующих данных о производительности или на основе данных о новых рабочих нагрузках. Полученный сконфигурированный план системы носит название системный план (system plan или sysplan). Компания может использовать сгенерированный системный план для формирования заказа на покупку серверов IBM. Кроме этого, системный план, сгенерированный инструментом SPT, можно развернуть на физической системе с помощью консоли HMC (Hardware Management Console).

В следующих разделах описываются шаги по конфигурированию среды непрерывной интеграции для SPT-проекта в среде Linux®. Эти шаги также применимы к операционным системам IBM AIX® и IBM i (см. следующее примечание).

Примечание: Читатели могут использовать эту статью в качестве справочника при настройке собственной среды непрерывной интеграции для своего проекта. Для этого пользователю необходимо – согласно потребностям своего проекта – изменить файлы проекта, маршрут, программное обеспечение контроллера версий исходного кода и т. д. Кроме того, если пользователю необходимо настроить среду интеграции в операционной системе, отличной от Linux, то при конфигурировании этой среды ему следует использовать команды соответствующей операционной системы.


Псевдокод или алгоритм функционирования среды непрерывной интеграции

  1. Извлечь последние исходные файлы или инкрементные исходные файлы, полученные от Configuration Management Version Control (CMVC)
  2. Осуществить сборку извлеченных файлов.
  3. Если сборка прошла успешно:
    1. Исполнить полный пакет/фрагмент пакета тестов и сгенерировать отчет по результатам тестирования.
    2. Исполнить скрипт покрытия кода (code coverage) и сгенерировать отчет о покрытии кода.
    3. Отправить электронное письмо об успехе сборки вместе с журналом сборки и с отчетами о покрытии.
  4. Если сборка прошла неудачно, повторить сборку еще два раза через заданный промежуток времени.
    • Если сборка прошла успешно:
      1. Исполнить полный пакет/фрагмент пакета тестов и сгенерировать отчет по результатам тестирования.
      2. Исполнить скрипт покрытия кода и сгенерировать отчет о покрытии кода.
      3. Отправить электронное письмо об успехе сборки вместе с журналом сборки и с отчетами о покрытии.
    • Если сборка прошла неудачно:
      1. Найти файл, который привел к неудаче сборки.
      2. Отправить соответствующему разработчику электронное письмо о неудаче сборки с указанием имени исходного файла, который вызвал неудачу.
  5. Повторять эти шаги в запланированное время каждый день, как указано в записи crontab.

Исполнение по расписанию извлечения кода и его сборки

Два раза в день (каждый день в 10:00 и в 17:00) скрипт сборки извлекает последние исходные файлы из CMVC и осуществляет сборку исходного кода.

Если последняя сборка завершилась неудачей, то скрипт сборки повторно исполняется еще два раза с временным интервалом 1 мин, начиная с первой сборки.

Скрипт отправляет электронное письмо о состоянии сборки (успех/неудача) соответствующей проектной группе, чтобы ее члены смогли принять надлежащие меры.

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

Загрузка необходимых программных продуктов и файлов

Чтобы выполнить настройку непрерывной интеграции для проекта IBM SPT вам потребуются следующие программные продукты и файлы. Вы можете загрузить эти файлы из Интернета или из раздела Материалы для загрузки.

  • Пакет IBM Software Development Kit (SDK) for Java™
  • Клиент командной строки CMVC для Linux
  • Утилита Apache Ant
  • Сервер Apache Tomcat
  • Jar-файл скрипта покрытия кода (emma.jar)

Выполняемое по расписанию извлечение кода и пошаговая процедура конфигурирования сборки

  1. Загрузите и скопируйте папку сборки проекта v1r2m0d, а также файлы cmvc_Linux_client_commands.tar, apache-ant-1.8.2-bin.tar и emma.jar в свою систему.

    Примечание: В данном случае v1r2m0d — это одна из папок SPT-проекта, которая содержит исходные файлы всего проекта.

  2. Измените каталог на папку, в которую скопирован tar-файл клиента командной строки CMVC.
    [root@localhost ~]# cd CMVC_client/
    [root@localhost CMVC_client]# ls
    cmvc_Linux_client_commands.tar
  3. Извлеките файлы из tar-файла клиента командной строки CMVC.
    [root@localhost CMVC_client]#tar -xvf cmvc_Linux_client_commands.tar
  4. Измените каталог на bin/. В списке файлов вы сможете увидеть все командные файлы CMVC.
    [root@localhost CMVC_client]# cd bin/
    [root@localhost bin]# ls
    Access    Authority   Cfgrelproc  cmvclog    Config    Defect       Feature  Folder    
    Level        Note     Prereq   Release  Size   Track
    Approval  Become      client.cmc  cmvcntrl   Conflict  Environment  File     Host      
    LevelMember  Notify   Process  Report   Stage  User
    Approver  Cfgcomproc  Cmvchost    Component  Coreq     Family       Fix      Interest  
    Migrate      Package  Project  Shadow   Test   Verify
  5. Загрузите и установите Apache Ant.

    После загрузки извлеките содержимое папки Ant с помощью следующих команд.

    gzip -d apache-ant-1.8.2-bin.tar.gz
    tar -xf apache-ant-1.8.2-bin.tar
  6. Если Java-пакет не установлен, то установите его и задайте classpath.
    • Загрузите IBM SDK for Java и установите его.
      ./ibm-java-i386-sdk-7.0-0.0.bin
    • После этого задайте маршрут в /etc/profile.d

      Создайте файл с именем java.sh и добавьте в этот файл следующие строки.

      vi /etc/profile.d/java.sh
      
      export JAVA_HOME=/opt/ibm/java-i386-70
      	
      export ANT_HOME=/root/apache-ant-1.8.2
      	
      export CMVC_HOME=/root/CMVC_client
      		
      export CMVC_AUTH_METHOD=PW
      export CMVC_FAMILY=xxxx@xxxx.yyyy.ibm.com@1312
      export CMVC_USER=zzzz
      		
      PATH=$PATH:$JAVA_HOME/bin:${ANT_HOME}/bin:$CMVC_HOME/bin:

    Примечание: Измените маршрут файлов согласно конфигурации, которую имеет среда проекта.

  7. Добавьте имя семейства CMVC и номер порта в файл services.

    Синтаксис

    xxxx@xxxx.yyyy.ibm.com 1312/tcp

    где, xxxx@xxxx.yyyy.ibm.com— это имя семейства CMVC, а 1312 — номер соответствующего порта CMVC.

    Добавьте показанную выше строку в конец файла /etc/services.

    nimhub		      48002/tcp			# Nimbus Hub
    nimhub		      48002/udp			# Nimbus Hub
    nimgtw		      48003/tcp			# Nimbus Gateway
    nimgtw		      48003/udp			# Nimbus Gateway
    com-bardac-dw	      48556/tcp			# com-bardac-dw
    com-bardac-dw	      48556/udp			# com-bardac-dw
    iqobject	      48619/tcp			# iqobject
    iqobject	      48619/udp			# iqobject
    # Local services
    xxxx@xxxx.yyyy.ibm.com 1312/tcp

    Пометьте как комментарии строки, если в них присутствует тот же номер порта (например, в следующей записи файла строки с портом 1312, который совпадает с портом семейства CMVC, помечены как комментарии).

    rxmon              1311/tcp          # RxMon
    rxmon              1311/udp          # RxMon
    #sti-envision                  1312/tcp                      # STI Envision
    #sti-envision 1312/udp # STI Envision bmc_patroldb 1313/udp # BMC_PATROLDB

Исполнение по расписанию пакета тестов и генерация по расписанию отчета о покрытии кода

После каждой успешной сборки скрипт сборки исполняет полный пакет тестов (фрагмент пакета тестов/тестовые сценарии) и генерирует отчет об исполнении пакета тестов для SPT-проекта.

Кроме того, после каждой успешной сборки он исполняет скрипт покрытия кода и генерирует отчет о покрытия кода в формате HTML, что позволяет любому участнику проектной группы впоследствии загрузить эти отчеты о покрытии и изучить их.

Пошаговая процедура конфигурирования для исполнения по расписанию скрипта покрытия кода

  1. Загрузите файл emma.jar (jar-файл скрипта покрытия кода) и скопируйте его в каталог <your jre dir>/lib/ext/.

    Пример: /root/nightly_builds_docs/ibm-java-i386-60/jre/lib/ext/emma.jar

  2. Предоставьте разрешения для исполнения файла emma.jar.
    chmod +x emma.jar

Пошаговая процедура настройки сервера Apache для загрузки журнала сборки, журнала результатов исполнения фрагмента пакета тестов и отчетов о покрытии

  1. Загрузите папку apache-tomcat-7.0.27 и скопируйте ее в папку /root/nightly_builds_docs.
  2. Измените каталог на папку bin папки Apache Tomcat.
    cd /root/nightly_builds_docs/apache-tomcat-7.0.27/bin
  3. Запустите сервер Apache Tomcat с помощью следующей команды.
    ./startup.sh &

Конфигурирование папки для сборки проекта, скриптов оболочки и cronjob

В этом разделе описываются шаги, необходимые для конфигурирования папки для сборки проекта, скриптов оболочки и задания cron для составления расписания извлечения кода и исполнения сборки.

Пошаговая процедура конфигурирования папки для сборки проекта и скриптов оболочки

  1. Создайте папку cmvc_extract в папке проекта v1r2m0d, в которую после извлечения будут помещены новые исходные файлы CMVC.
    mkdir /root/nightly_builds_docs/build/v1r2m0d/cmvc_extract
  2. Создайте папку build_home в папке проекта v1r2m0d, куда новые исходные файлы без маршрута cmvc будут копироваться из папки cmvc_extract и где позднее будут собираться файлы.
    mkdir /root/nightly_builds_docs/build/v1r2m0d/build_home
  3. Скопируйте следующие скрипты оболочки в папку сборки проекта (/root/nightly_builds_docs/build/v1r2m0d.hpi/) и предоставьте разрешения для исполнения следующих скриптов.
    • send_failed_build_mail.sh
    • nightlyBuild_retry.sh
    • coverage_script.sh
    chmod 777 send_failed_build_mail.sh
    chmod 777 nightlyBuild_retry.sh
    chmod 777 coverage_script.sh
  4. Скопируйте основной скрипт оболочки build_coverage_send_mail.sh в папку /root/nightly_builds_docs/build/ и предоставьте разрешения для исполнения следующего скрипта оболочки.
chmod 777  build_coverage_send_mail.sh

Конфигурирование задания cron для выполняемого по расписанию извлечения кода и исполнения сборки

  1. 1. Настройте планировщик / задание cron для исполнения скрипта сборки в определенное время суток.
    1. Установите crontab с помощью следующей команды.
      [root@localhost v1r2m0d]# crontab -e
      no crontab for root - using an empty one
      crontab: installing new crontab

      Примечание: Откроется редактор Vi, с помощью которого необходимо ввести задание с настройками времени. После этого сохраните задание и закройте редактор.

    2. Создайте запись crontab для исполнения конкретного скрипта в заданное время дня.

      Примечание: Задайте записи crontab в соответствии с потребностями своего проекта. Ниже показано несколько примеров.

      Следующая запись crontab исполняется ежедневно в 0:05.

      [root@localhost v1r2m0d]# crontab -l
      5 0 * * * export JAVA_HOME=/root/nightly_builds_docs/ibm-java-i386-
      60;/root/nightly_builds_docs/build/build_coverage_send_mail.sh &

      Следующая запись crontab исполняется ежедневно, два раза в сутки: один раз в 0:00 и один раз в 12:00.

      00 0,12 * * * export JAVA_HOME=/root/nightly_builds_docs/ibm-java-i386-
      60;/root/nightly_builds_docs/build/build_coverage_send_mail.sh &

      Следующая запись crontab исполняется каждый час.

      0 * * * * export JAVA_HOME=/root/nightly_builds_docs/ibm-java-i386-
      60;/root/nightly_builds_docs/build/build_coverage_send_mail.sh &

      Следующая запись crontab исполняется ежедневно, два раза в сутки: один раз в 10:00 и один раз в 17:00.

      0 10,17 * * * export JAVA_HOME=/root/nightly_builds_docs/ibm-java-
      i386-60;/root/nightly_builds_docs/build/build_coverage_send_mail.sh &

      Следующая запись crontab исполняется ежедневно, два раза в сутки: один раз в 10:00 и один раз в 17:00, и отсылает выходную информацию crontab в текстовый файл.

      0 10,17 * * * export JAVA_HOME=/root/nightly_builds_docs/ibm-java-
      i386-60;/root/nightly_builds_docs/build/ build_coverage_send_mail.sh 
      > /root/nightly_builds_docs/build/crontab_output.txt &
  2. Перезапустите систему.

Ресурсы


Загрузка

ОписаниеИмяРазмер
Образец кодаconfiguration_scripts.zip5 КБ

Комментарии

developerWorks: Войти

Обязательные поля отмечены звездочкой (*).


Нужен IBM ID?
Забыли Ваш IBM ID?


Забыли Ваш пароль?
Изменить пароль

Нажимая Отправить, Вы принимаете Условия использования developerWorks.

 


Профиль создается, когда вы первый раз заходите в developerWorks. Информация в вашем профиле (имя, страна / регион, название компании) отображается для всех пользователей и будет сопровождать любой опубликованный вами контент пока вы специально не укажите скрыть название вашей компании. Вы можете обновить ваш IBM аккаунт в любое время.

Вся введенная информация защищена.

Выберите имя, которое будет отображаться на экране



При первом входе в developerWorks для Вас будет создан профиль и Вам нужно будет выбрать Отображаемое имя. Оно будет выводиться рядом с контентом, опубликованным Вами в developerWorks.

Отображаемое имя должно иметь длину от 3 символов до 31 символа. Ваше Имя в системе должно быть уникальным. В качестве имени по соображениям приватности нельзя использовать контактный e-mail.

Обязательные поля отмечены звездочкой (*).

(Отображаемое имя должно иметь длину от 3 символов до 31 символа.)

Нажимая Отправить, Вы принимаете Условия использования developerWorks.

 


Вся введенная информация защищена.


static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=40
Zone=AIX и UNIX, Linux
ArticleID=979700
ArticleTitle=Среда непрерывной интеграции для инструмента IBM System Planning Tool
publish-date=08042014