Средства выпуска сборок

Интеграция со средствами выпуска сборок позволяет реализовывать следующие типовые сценарии:

  • добавление сборки в список сборок;
  • изменение статуса или описания ранее добавленной сборки;
  • импорт отчета от инструмента автоматизированного тестирования;

Обновление данных о сборках

Процесс сборки продукта, его тестирование и выкладка настолько индивидуальны для каждой компании-разработчика, что любое готовое решение сразу будет ограничивать разработчика в возможностях. Мы не создаем готовых интеграций со средствами выпуска сборок. Мы пошли по пути интеграции через REST API.

Популярные и бесплатные инструменты выпуска сборок: Jenkins, TeamCity.

Пример команды для публикации сборки (под Linux):

curl -X POST -H "Devprom-Auth-Key: 974ccbfadd36dcc44fb8c1dda9bdb6fd" https://demo.myalm.ru/pm/project73/api/v1/builds -d '{"Caption":"","Description":"","BuildRevision":{"Version":""},"State":"inprogress"}'

Тоже самое, но под Windows:

curl -X POST -H "Devprom-Auth-Key: 974ccbfadd36dcc44fb8c1dda9bdb6fd" https://demo.myalm.ru/pm/project73/api/v1/builds -d "{\"Caption\":\"\",\"Description\":\"\",\"BuildRevision\":{\"Version\":\"\"},\"State\":\"inprogress\"}"

Пример команды изменения статуса сборки (под Windows):

set /p APP_VERSION=<build\version.txt
set REST_JSON={\"Caption\":\"%APP_VERSION%\",\"State\":\"deployed\",\"Description\":\"https:\/\/trunk.myalm.ru\"}
set REST_URL= http://hq.devprom.ru/pm/core/api/v1/builds
build\tools\curl -X POST -H "Devprom-Auth-Key: 49191a9f577317588fdaf37304ec1191" %REST_URL% -d "%REST_JSON%"
EXIT /B 0

В приведенном выше примере в файле build\version.txt каким-то образом заранее сохраняется полная версия продукта.

Ручной запуск сборок

Ручной запуск сборки из ALM рассмотрим на примере интеграции с Jenkins.

Сборкой и автоматическим тестированием занимается Job с названием "alm-deploy-test", который принимает следующие параметры:

  • Тип СУБД (RDBMS)
  • Название бранча в системе контроля версий (BRANCH)

Создаем пользовательское действие для сущности Репозиторий с названием "Собрать сборку" и добавляем:

  • Параметры
    • СУБД как ссылку на пользовательский справочник, который позволяет выбрать нужную СУБД. В качестве ссылочного имени указываем "RDBMS".
  • Webhook
    • URL - https://server-name/job/instance/buildWithParameters?BRANCH={{RootPath}},RDBMS={{RDBMS}}
    • Сообщение - {}
    • HTTP-заголовки - Authorization: Basic xxx
    • Метод - POST

В URL для веб-хука передаются параметры (те что в двойных фигурных скобках):

  • RootPath - атрибут сущности Репозиторий, соответствующий названию бранча;
  • RDBMS - ссылочное имя параметра пользовательского действия, содержащий признак СУБД, для которой выполняется сборка приложения.

Теперь в контекстном меню для Репозитория добавляется пункт "Собрать сборку", при выборе которого система запросит уточнение по типу СУБД и затем вызовет веб-хук на стороне Jenkins.

В "Журнале событий" можно отслеживать выполнение данного пользовательского действия после вызова.