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

в 17:47, , рубрики: intersystems cache, Блог компании InterSystems, метки:

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

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

Все красиво, просто и удобно. Теперь необходимо разобраться с магией в скрипте, запускаемом после получения исходников. Темные заклинания вот тут:
Пояснения к магии
1. Для управления сервером Cache используется слабо документированная утилита «каталог установки Caché»Bincache.exe. По сравнению с cterm, она удобнее тем, что позволяет использовать обычный синтаксис Caché Object Script (вместо send-wait cterm-а), а результаты выполнения выводит в консоль текущего процесса. Последняя особенность позволит нам просматривать результаты сборки из интерфейса Jenkins.
2. Серверу Cache для загрузки исходников необходимо передать путь к директории. Но мы уже указали его при настройке Jenkins. Jenkins, в свою очередь, перед запуском скрипта устанавливает соответствующие переменные окружения. Однажды и только однажды, так ведь? Поэтому используется прием, когда скрипт (cmd-файл) создает скрипт (с командами Caché Object Script), прописывая значения переменных окружения, и передает его серверу Caché на выполнение.

Автор: doublefint

Источник

* - обязательные к заполнению поля


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js