Непрерывная интеграция (CI) с Phabricator?

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


person Hanfei Sun    schedule 17.12.2014    source источник
comment
Моя компания использует Phabricator для запуска сборок в Jenkins, но мы еще не освоили CI с помощью Phabricator. Я буду следить за этим в надежде получить подсказки для нашего собственного использования.   -  person CEPA    schedule 17.12.2014


Ответы (3)


Если вы используете Jenkins, хорошие ребята из Uber создали дифференциальный плагин Jenkins Phabricator, который позволяет действительно очистить ваши конфигурации заданий (если вы уже настроили их, используя ссылки из пост Зеродиффа).

person Jonas Arneberg    schedule 14.10.2015

Я выполнил интеграцию с 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, он будет создавать ваши различия.

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

person zerodiff    schedule 22.01.2015
comment
Я отредактировал это, чтобы удалить первые две неработающие ссылки. Не стесняйтесь принимать или редактировать дальше, если вы найдете лучшие ссылки. - person d1str0; 20.10.2016

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

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

person code_dredd    schedule 20.06.2015