Используя PEAR, Phing для решения ROBUST для развертывания? - PullRequest
2 голосов
/ 29 января 2012

Я начинаю новый проект и хочу пошаговый процесс сборки для своей разработки, непрерывной интеграции и производственных серверов.

Я хочу, чтобы этот процесс был включен в мой источник контроля (git / github) и надежно работал на любом из трех моих серверов, которые довольно похожи, но имеют разные пути для корня проекта.

Я планировал использовать Phing, PHPDocumentor, PHP_CodeSniffer, PHPUnit и т. Д., Установленные через Pyrus, в локализованную установку PEAR / PEAR2, которая может быть развернута вместе с проектом, поэтому я мог быть уверен в своих зависимостях во время сборки.

Однако у меня не было ничего, кроме проблем с настройкой.

Это первый раз, когда я пытался настроить такую ​​систему сборки, и установка * nix не является моей сильной стороной (хотя в конечном итоге я всегда получаю надежную систему), так что слабое звено здесь может будь мной. Тем не менее, у меня много проблем с PEAR.

Например, как бы тщательно я ни устанавливал через pyrus, все заканчивается путями. Рассматривая некоторые из пакетов PEAR, все пути жестко запрограммированы (вероятно, установлены во время выполнения) с относительными путями, которые я использовал во время установки (./pear и т. Д.). Это означает, что я могу успешно запускать пакеты только из папки, в которой находился pyrus во время установки, даже несмотря на то, что сценарии запуска были помещены в ./pear/bin, и я установил папку bin во время установки. Иногда пути внутренне конфликтуют с одним пакетом, поэтому он хочет запустить отсюда, но он хочет управлять конфигурацией оттуда ...

PHPDocumentor не обрабатывает PHP5.3 (и не будет работать для меня вообще, может быть, потому что у него есть проблемы, может быть, потому что я его неправильно установил?), Поэтому я заменил его на PHPDoctor, который изначально кажется довольно хорошим.

Другой пример, после установки Phing будет работать, но просто тихо умирает. После его изучения и отслеживания я обнаружил, что непонятная функция в строке 70 файла / io / PhingFile получает нулевое значение для требуемого аргумента, в результате чего возникает исключение ConfigurationException, из-за которого он молча умирает.

Я уверен, что смогу заставить все это работать нормально, но я НЕ уверен, что это когда-либо будет развертываемая надежная система, и я действительно не хочу отлаживать, настраивать, а затем поддерживать большая куча самоизменяющихся пакетов PEAR, которые необходимо повторно настраивать при каждом обновлении.

Итак, наконец, вопрос = о)

У кого-нибудь есть действительно хорошая надежная система сборки, использующая эти приложения? Был ли какой-то трюк с этим?

Или у всех есть хорошая надежная система сборки, и это просто моя наивность с * nix установками и конфигурацией системы, которая делает все это похожим на двойную помощь clusterphuckery?

У кого-нибудь есть указания по настройке такой системы для работы на нескольких серверах, или я просто шучу? Может быть, я должен просто сделать отдельные установки в системах за пределами корневого каталога проекта и продолжить разработку?

1 Ответ

1 голос
/ 30 января 2012

@ работают, мы используем много пакетов PEAR в нашем программном обеспечении, устанавливаем их через Pyrus в локальные каталоги и широко используем Phing в качестве инструмента сборки для запуска тестов и развертывания программного обеспечения - на разных системах Linux, а некоторые разработчики даже запускают их на своих Ящики для окон.

Он работает надежно, и мы не испытываем проблем, которые вы описали.

...