Pull to refresh

Comments 22

А есть какие-нибудь плагины или мануалы по интеграции с gerrit?
«Из коробки», к сожалению, нет. А мануалов, кроме официальной документации, я вообще никаких не видел.
Проект слишком молодой еще, есть вариант, либо поэкспериментировать самому, либо создать реквест на эту фичу на гитхабе, вполне возможно, что кто-то реализует ее, проект сейчас довольно активно разрабатывается.
Честно говоря, так и не понял чем phpci лучше jenkins
А я и не утверждал, что лучше) Просто альтернатива, написанная на PHP.

Для PHP проектов удобно то, что composer, phpunit и прочие стандартные для языка инструменты есть из коробки и настраиваются декларативно, плюс к тому PHPCI умеет парсить вывод некоторых утилит и рисовать графики и/или показывать статистику, опять же из коробки.

В Jenkins я смогу собрать какую-то статистику phunit, php_mass_detect и подобного, не допиливая его руками, например? Допиливать опять же проще на языке который ты хорошо знаешь, для меня java таковым языком не является.
>В Jenkins я смогу собрать какую-то статистику phunit, php_mass_detect не допиливая его руками, например?
Конечно. Плагины есть — настройка в ant-скрипте
Это и есть уже допиливание. Тут в том и соль, что для PHP в общем случае вообще ничего ставить не нужно, все основное работает сразу после установки.
Но вообще, это дело вкуса конечно и привычки, мне например для маленьких проектов на PHP Jenkins — это прям очень оверхед, еще и с дополнительной зависимостью в виде java.
В Jenkins я смогу собрать какую-то статистику phunit, php_mass_detect и подобного, не допиливая его руками, например? Допиливать опять же проще на языке который ты хорошо знаешь, для меня java таковым языком не является.


Да сможете, Sebastian Bergmann, то что разработчик PHPUnit, все это уже сделал для нас — остается только установить: jenkins-php.org/
Проект сразу тоже понравился, даже контрибьютил немного, но потом перестал, когда столкнулся с тем, что PHPCI требует установки зависимостей тестируемого проекта на сервере. То есть, если мой проект использует Behat/PHPUnit/Codeception, то PHPCI не умеет взять эти либы из вендоров проекта, а обязан иметь установленными их на сервере, где сам хостится. Это в корне неправильно, я считаю, но авторы думают иначе.

Подробнее данная проблема обсуждается здесь, с двумя core разработчиками: github.com/Block8/PHPCI/issues/231

После этой проблемы поставил TeamCity и бед не знаю, Jenkins так же не имеет такой болезни. В общем, есть куда развиваться! Автору спасибо за обзор.
Вообще я с вами согласен, что зависимости должны искаться в том числе в самом проекте, если вообще не в первую очередь там.

Но я понимаю зачем сделано так как сделано, эти плагины можно добавить в composer.json PHPCI прямо из админки, а потом установить разом для всех проектов, в этом в общем тоже есть своя прелесть, — например предсказуемость версий Behat/PHPUnit/Codeception. Все тестируется в одном окружении.

К тому же это не совсем уж глобальная установка (хотя глобальная тоже будет работать), а установка зависимостей для плагинов внутри PHPCI. То есть это глобально для всех проектов в PHPCI, но не глобально для сервера в целом.

В конечном итоге для меня лично это не настолько принципиально оказалось.

Опять же плагины для работы с этими утилитами могут быть завязаны на какие-то требования к версиям этих утилит, а если запускать утилиты непосредственно из проекта, то вполне может получится зоопарк версий и разной степени тяжести конфликты.

Я бы на месте разработчиков в проекты бы заглядывал, но в самую последнюю очередь, после поиска в PHPCI и глобально)
Я понимаю, что я сейчас пишу в пустоту (по прошествию стольких лет), но вдруг кто-то найдет эту статью.

Во-первых, в PHPCI уже давно можно использовать утилиты из проекта, а не «системные» (правда, нельзя явно указать откуда запускать).

Во-вторых, из-за того что PHPCI скорее мертв, чем жив, уже не один год, я с год назад его форкнул и в PHP Censor-е (форке) есть возможность запуска утилит из проекта, есть возможность явно указать откуда их запускать и есть много чего еще (LDAP, PostgreSQL и т.д.) по сравнению с PHPCI.

Так что, если сейчас начинать использовать PHPCI, то лучше брать PHP Censor, который обновляется в отличии от.
Очень понравилось, сразу же заюзал, уже даже отправил несколько Pull Request. Но проблема в скудной документации. В частности как заюзать Interpolation? Надо подставлять в файликах номер билда и версию. Правда это можно сделать и средствами самого Mercurial. Какие есть настройки у build_settings? Где это все найти?
Вот здесь на страницах wiki отдельных плагинов в основном есть возможные опции (например для phpunit). Но надежнее посмотреть в исходники плагина, там прямо в конструкторе хорошо видно какие опции берутся из конфига.

Документации пока мало, это верно, но тот факт что система на писана на PHP меня как раз и радует тем, что я всегда могу в исходниках посмотреть, когда документации не хватает.
Этот листинг функций (не документацию) я уже видел. К сожалению, тоже приходится лазить в исходники. Например, сейчас ищу как научить работать с приватным проектом на bitbucket.
Пока в общем надежнее в исходниках смотреть, тем более что меняются они быстрее чем документация)
Эмм, а сборки из нескольких веток в одну нет? В доке по конфигурации об этом ни слова. Грустно, нужная же штука.
Боюсь, неправильно поняли, там суть в том, что они хотят дефолтную ветку для сборки выбирать. А я хочу через запятую указать список веток, чтобы CI их смерджила в одну временную, и поверх нее уже исполнила все таргеты. Это полезно, если у вас есть, допустим, пять feature-веток, и вам их надо постоянно интегрировать.
Ога, понял, такой фичи нет. Там сейчас работа с ветками вообще в довольно зачаточном состоянии и вы правильно сделали, что создали ишью.
Sign up to leave a comment.

Articles