2014-12-17 5 views
8

Я попытался использовать инструменты непрерывной интеграции Travis CI, CircleCI и код, но не нашел ни одного из них документа поддержки для фабрикатора. Кто-нибудь есть идеи о том, как сделать непрерывной интеграции (CI) с Phabricator?Непрерывная интеграция (CI) с фабрикатором?

+0

Моя компания использует Фабрикатор, чтобы начать строить в Дженкинсе, но мы по-настоящему не освоили CI с Фабрикатором. Я буду следовать этому в надежде получить подсказки для нашего собственного использования. – CEPA

ответ

5

Если вы используете Дженкинс, славные ребята в Uber создали a Jenkins Phabricator Differential plugin, что позволяет реально очистить ваши конфиги работы (если вы уже настроили их с помощью ссылок из zerodiff's post).

8

Я сделал интеграцию с Travis-CI, добавив post diff и land hooks в Phabricator, чтобы развернуть diff как ветки в GitHub, где Travis ищет обновления ветвей. Насколько я знаю, Travis-CI интегрируется только с GitHub, поэтому, если ваше основное репо есть и Phabricator указывает на это, это можно сделать.

Если вы хотите воспользоваться этим подходом, то для начала нужно создать свой собственный ArcanistConfiguration и переопределить didRunWorkflow. См. Также, как создать new library. Документация API довольно хороша, но мне пришлось пройти через пробную версию и ошибку, чтобы получить то, что я хотел. Люди Фабрикатора, вероятно, с удовольствием ответят на вопросы.

Вы также можете посмотреть в Phabricator трубопровод differential.createcomment к сообщениям сценариев для файлов изменений, как так:

arc call-conduit --conduit="https://my.phabricator.com/" --arcrc-file="robot.arcrc" \ 
    differential.createcomment <<EOF 
{"revision_id":"1234","message":"Yer build done failed"} 
EOF 

Где robot.arcrc является arcrc файл с учетными данными, чтобы подтолкнуть сообщения и 1234 номер ревизии. Вам нужно будет использовать API conduit, чтобы получить номер версии.

Итак, я думаю, что ответ заключается в том, что вам, возможно, придется создавать свое собственное решение в зависимости от того, какая интеграция CI для инструмента CI, с которым вы хотите интегрироваться. И вот discussion поддержки Тревиса для Фабрикатора.

Редактировать: Вот traphic, пример удлинения арканиста, чтобы развернуть на ветвях на GitHub на arc diff и удалить их на arc land. Поскольку Travis-CI ищет обновления от GitHub, он будет создавать ваши отличия.

Сторона примечания: Это в основном свалка мозга. Я знаю, что хорошие ответы содержат больше примеров кода, и ссылки на них нахмурились, но вопрос был довольно открытым и искал указатели, поэтому я стараюсь быть полезным.

+0

Я отредактировал это, чтобы удалить первые две ссылки, которые были сломаны. Не стесняйтесь принимать или редактировать, если найдете лучшие ссылки. – d1str0

0

Следует иметь в виду, что в настоящее время разрабатывается инструмент плагинов для непрерывной интеграции (т. Е. Harbormaster).

Вы можете найти это в таблице на странице сравнения. См http://phabricator.org/comparison/

Смежные вопросы