...

пятница, 7 февраля 2014 г.

Овсянка, сэр! Собираем проект на Intersystems Caché с помощью Jenkins

С одной стороны M (Caché) программисты настолько суровы, что любой прикладной софт пишут сами. И задача сборки проекта не должна особых затруднений. Действительно, что сложного в том, чтобы: сделать запрос к серверу контроля версий (Git,SVN,Hg), разобрать ответ и вытащить номер ревизии, сравнить с номером ревизии загруженного кода, вызвать исполняемый файл и скачать исходники, загрузить их в базу, скомпилировать, сохранить результаты, сформировать отчет, прикрутить к этому всему web-интерфейс, добавить возможность изменения настроек, расписания, и «любая работающая система стремится к бесконечной функциональности» т.д. С другой стороны – сколько времени вы на это собираетесь потратить?



Если больше пяти минут, то однозначно стоит обратить внимание на Jenkins. Делает все вышеперечисленное и будет экономить вам время каждый раз, когда необходимо собрать проект. Статья базируется на материалах лекции со школы инноваций 2013, но всё внимание сконцентрировано только на задаче-минимум:- получение исходников, загрузка, компиляция и просмотр результатов. Примечание об окружении: платформа windows 64, Cache2014.

Суть происходящего на видео ниже:

Скачиваем и устанавливаем Jenkins, настраиваем на хранилище с исходниками, настраиваем рабочую директорию, указываем какой скрипт запустить после получения исходников. Настраиваем работу по расписанию. Запускаем первую сборку. Смотрим результаты.

[video]

Все красиво, просто и удобно. Теперь необходимо разобраться с магией в скрипте, запускаемом после получения исходников. Темные заклинания вот тут:

Пояснения к магии

1. Для управления сервером Cache используется слабо документированная утилита «каталог установки Caché»\Bin\cache.exe. По сравнению с cterm, она удобнее тем, что позволяет использовать обычный синтаксис Caché Object Script (вместо send-wait cterm-а), а результаты выполнения выводит в консоль текущего процесса. Последняя особенность позволит нам просматривать результаты сборки из интерфейса Jenkins.

2. Серверу Cache для загрузки исходников необходимо передать путь к директории. Но мы уже указали его при настройке Jenkins. Jenkins, в свою очередь, перед запуском скрипта устанавливает соответствующие переменные окружения. Однажды и только однажды, так ведь? Поэтому используется прием, когда скрипт (cmd-файл) создает скрипт (с командами Caché Object Script), прописывая значения переменных окружения, и передает его серверу Caché на выполнение.

This entry passed through the Full-Text RSS service — if this is your content and you're reading it on someone else's site, please read the FAQ at http://ift.tt/jcXqJW.


Комментариев нет:

Отправить комментарий