Ускорение непрерывной интеграции PHP сервер сборки на Hudson CI

Я пытаюсь немного ускорить свои сборки и искал некоторые мысли о том, как это сделать. В настоящее время я использую Hudson в качестве сервера непрерывной интеграции для проекта PHP .

Я использую файл Ant build.xml для сборки, используя файл, аналогичный php-hudson-template Себастьяна Бергманна. В данный момент, хотя (из-за некоторых странных проблем с отказом Hudson в противном случае) я использую только phpDocumentor , phpcpd и phpUnit . phpUnit также генерирует отчеты о покрытии кода Clover .

Вот некоторые возможные узкие места:

  1. phpDocumentor : Занимает 180 секунд . В мой проект включены несколько больших библиотек, таких как awsninja , DirectedEdge , oauthsimple и phpMailer . Я не уверен, что мне действительно нужно разрабатывать документацию для них. Я также не уверен, как игнорировать целые подкаталоги, используя мой файл build.xml.
  2. phpUnit : Занимает 120 секунд . Это единственная часть сборки, которая ' s не запускается как parallelTask ​​. Чем больше тестов будет написано, тем дольше будет увеличиваться это время. На самом деле не уверен, что с этим делать, кроме, возможно, запуска нескольких ведомых устройств сборки Hudson и раздачи отдельных наборов тестов каждому ведомому устройству. Но я также не знаю, как это сделать.
  3. phpcpd : Занимает 97 секунд . Я уверен, что могу сократить время синтаксического анализа и преобразования, игнорируя эти включенные библиотеки. Не знаю, как это сделать в моем файле build.xml.
  4. Мой сервер : Сейчас я использую один сервер Linode. Кажется, весь процесс облагается большим налогом.

Любые другие возможные узкие места, о которых вы можете подумать, я добавлю к списку.

Какие есть решения для сокращения времени сборки?

5
задан Josh Smith 12 September 2010 в 21:53
поделиться