Я попробовал инструменты непрерывной интеграции Travis CI, CircleCI и codeship, но не обнаружил, что ни один из них не предоставляет документ поддержки для фабрикатора. У кого-нибудь есть идеи о том, как сделать непрерывную интеграцию (CI) с Phabricator?
Непрерывная интеграция (CI) с Phabricator?
Ответы (3)
Если вы используете Jenkins, хорошие ребята из Uber создали дифференциальный плагин Jenkins Phabricator, который позволяет действительно очистить ваши конфигурации заданий (если вы уже настроили их, используя ссылки из пост Зеродиффа).
Я выполнил интеграцию с Travis-CI, добавив почтовые diff и хуки земли в Phabricator, чтобы отправлять diff в виде веток на GitHub, где Travis ищет обновления веток. Насколько я знаю, Travis-CI интегрируется только с GitHub, так что если ваш основной репозиторий там и Phabricator указывает на него, то это можно сделать.
Если вы хотите использовать этот подход, начните с создания собственной ArcanistConfiguration и переопределение didRunWorkflow
. См. также, как создать новую библиотеку. Документация по 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
— номер версии. Вам нужно будет использовать conduit
API, чтобы получить номер версии.
Итак, я думаю, что ответ заключается в том, что вам, возможно, придется создать собственное собственное решение в зависимости от того, с какой интеграцией CI для инструмента CI вы хотите интегрироваться. А вот обсуждение поддержки Travis для Phabricator.
Изменить: вот traphic, пример расширения arcanist для отправки различий в ветки на GitHub на arc diff
и их удаления. на arc land
. Поскольку Travis-CI ищет обновления на GitHub, он будет создавать ваши различия.
Примечание: в основном это выдумки. Я знаю, что в хороших ответах есть больше примеров кода, а ссылки не одобряются, но вопрос был довольно открытым и искал указатели, поэтому я пытаюсь быть полезным.
Возможно, стоит отметить, что инструмент Phabricator для непрерывной интеграции (например, Harbormaster) в настоящее время находится в стадии разработки.
Вы можете найти это в таблице на их странице сравнения. См. http://phabricator.org/comparison/.