среда, 18 сентября 2013 г.

Приятная неожиданность - Jenkins

Для open-source проектов отлично подходит travis-ci.org для прогона тестов и сборки.

А что же использовать если исходники закрыт, и сервер CI нужен прямо здесь и приватно.

Задача давно назрела. поэтому вооружился гуглом, доками, выделил отдельный инстанс debian testing,  выделил полдня времени, и с пессимистичным настроем "вот сейчас напляшемся", начал гуглить.

Оказывается, все это настолько просто, что хоть плачь.

apt-get install jenkins

Поправил  в /etc/default
# Listen address for HTTP connector
HTTP_HOST=
И оно уже само работает.

Описывать создание проекта там, прям, как то и неловко. Все просто.

Единственный момент о который я споткнулся - он пытается из git репозитория создавать tag с каким то сложным именем и обламывается.
Я б может разобрался, но там прямо галочка есть "пропустить создание тэга", и я малодушно ее нажал ;)

Ну зато теперь будет чем заняться, план такой:

1. Автозапуск сборки по коммиту на центральный реп, и возможность добавить какой то хук на девелоперские машины.

2. Поработать над "фермой" сборщиков, они по умолчанию двух сборщиков прямо на этой же машине запускают, но хочется больше. сильнее. распределеннее.

3. Подумать о шифровании приватной информации нужной для билда. Не уверен что оно нужно. Но вдруг. Т.е. некий механизм похожий на travis, на ферме свой приватный ключ, а мы публичным что то шифруем.
Хотя, пока оно все тут в локалке под моим управлением, может и не нужно.

4. Как то не увидел я очистки от предыдущих сборок. Т.е. нет "контейнера" для сборки. Это мне не понравилось.
Пример, я в pre-build скрипте добавил cpanm Mojolicious и оно поставилось. но после окончания сборки осталось.
Зачем оно мне тогда в pre-build? я могу просто на хосте поставить и все.

Делитесь опытом.