Автоматическая публикация стабильных сборок

Sep 14, 2017 10:32

Мне не очень нравиться менять на сайте ссылку на последнюю стабильную версию продукта вручную, я это совсем не люблю.
Чтобы это хоть как-то автоматизировать я придумал следующее.
Ссылка постоянна, имя файла содержит токлько главный номер версии.
Jenkins умеет публиковать артефакты сборки через FTP или в общую папку Windows. Я настроил послесборочные шаги так, чтобы архив с последним обновлением выкладывался по FTP в одну и ту же папку. Папка именуется так "корень-FTP/каталог-продукта/last/update/", для установочного дистрибутива папка "../last/dist". Задача очищает папку перед загрузкой новых артефактов, потому там будет самая новая версия. Каталог доступный по FTP одновременно доступен и веб-серверу, потому на сайте я просто указываю этот путь с http, например "http://example.org/files/pub/product-name/last/update/product-update.zip".

Автоматическая публикация стабильной сборки
Для автоматической публикации стабильной сборки серверу нужно знать, какая из них стабильная.
Тут два варианта:
  1. собирать последний созданный тег из хранилища;
  2. собирать из специальной ветки stable.
Мне больше нравиться вариант 2. Настроено это так: права на запистьв в ветку stable, есть только у разработчика отвечающего за выпуск версий, когда разработчики выпустили новую версию и зафиксировали ее в тег, ответственный за выпуск сливает этот тег в ветку stable.
Jenkins в задача publish-stable по расписанию проверяет в хранилище ветку stable и как обнаруживает обновление запускает сборку, конечный шаг которой публикация артефактов.
Так разработчику даже в Jenkins не надо заходить для публикации сборки, и в логе SVN остается след о публикации сбоки, видно когда была опубликована и кто одобрил ее.

автоматизация, jenkins, svn, программирование, работа

Previous post Next post
Up