Используя PEAR, Phing для НАДЕЖНОГО решения для развертывания?


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

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

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

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

Я впервые пытаюсь настроить такую систему сборки, и установки *nix не являются моей сильной стороной (хотя в конечном итоге я всегда получаю надежную систему), поэтому слабым звеном здесь могу быть я. Однако многие проблемы, с которыми я сталкиваюсь, похоже, исходят от ГРУШИ.

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

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

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

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

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

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

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

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

Author: Lightness Races in Orbit, 2012-01-29

1 answers

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

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

 1
Author: cweiske, 2012-01-30 12:27:02