Я пытаюсь ускорить свои сборки и искал некоторые мысли о том, как это сделать. В настоящее время я использую Hudson
в качестве сервера непрерывной интеграции для PHP
проекта.
Я использую файл Ant
build.xml для сборки, используя файл, аналогичный php-hudson-template
< / а>. Однако на данный момент (из-за некоторых странных проблем с отказом Hudson в противном случае) я использую только phpDocumentor
, phpcpd
и phpUnit
. phpUnit
также создает Clover
отчеты о покрытии кода.
Вот несколько возможных узких мест:
phpDocumentor
: занимает 180 секунд. В мой проект включены несколько больших библиотек, напримерawsninja
,DirectedEdge
,oauthsimple
иphpMailer
. Я не уверен, что мне действительно нужно разрабатывать документацию для них. Я также не уверен, как игнорировать целые подкаталоги с помощью моего файла build.xml.phpUnit
: занимает 120 секунд. Это единственная часть сборки, которая не запускается какparallelTask
. Чем больше тестов будет написано, тем дольше будет увеличиваться это время. На самом деле не уверен, что с этим делать, кроме, возможно, запуска нескольких ведомых устройств сборки Hudson и раздачи отдельных наборов тестов каждому ведомому устройству. Но я тоже не знаю, как это сделать.phpcpd
: занимает 97 секунд. Я уверен, что могу сократить время синтаксического анализа и преобразования, игнорируя эти включенные библиотеки. Не знаю, как это сделать в моем файле build.xml.- Мой сервер: сейчас я использую один сервер Linode. Кажется, весь процесс облагается налогом.
Любые другие возможные узкие места, о которых вы можете подумать, я добавлю к списку.
Как можно сократить время сборки?