Jenkins – инструмент для непрерывной интеграции
Как правильно настроить эко-систему по сборке PHP-проектов
CI – Continuous Integration
Другими словами, это инструмент, который выполняет в автоматическом режиме поставленные ему задачи
Применительно к проектам это может быть: прогон тестов, проверка на наличие ошибок, генерация документации и многое другое. Все эти задачи описываются один раз в специальном файле build.xml и далее jenkins по расписанию выполняет все описанное в файле
Пример типового build файла
build.xmlВ данном файле идет описание задач и их последовательности для
jenkins, после определение названия проекта <project name="Test" default="build" basedir=".">Указываются те задачи которые будут выполняться<target name="build" depends="init, codeception, phpmd, phpcs, phpcpd, pdepend, phpdoc"></target>И далее идет описание по каждой из них <target name="init"> <mkdir dir="${output}/pdepend/"/> <mkdir dir="${output}/docs/"/> <mkdir dir="${output}/docs/phpdoc/"/> <mkdir dir="${output}/logs/"/> <mkdir dir="${basedir}/tests/_log/coverage/"/> <exec dir="${basedir}/" executable="cmd"> <arg line="/c init.sh" /> </exec> </target>
Target InitДля пример задача (target) init инициализирует базовые настройки для
сборки, а именно создает папки, куда будут генерироваться специальные файлы и запускает выполнение файла init.sh
#!/bin/shcp application.simple.php application.phpcp tests/acceptance.suite.simple.yml tests/acceptance.suite.ymlcp tests/functional.suite.simple.yml tests/functional.suite.ymlmysql -uroot < db/groupon.sqlmkdir upload/cachemkdir upload/Filesmkdir upload/cache/templates_c
Который делает дамп базы данных, и создает уже папки для самого проекта.
Переходим в Jenkins
Создание новой сборки
Создаем новую сборку,
Наша задача, автоматизировать сборку проекта, следовательно jenkins должен подтягивать его из репозитория и выполнять описанные задачи
Установка репозитория
Установка задач
Запуск
• Запускаем сборку
Результат
Завершение
Останется либо установить таймер, либо запускать вручную, и jenkins будет производить сборку и отображать результаты, таким образом можно динамически следить за чистотой кода, отсутствием неиспользуемых переменных и методов, покрытия тестами.
http://jenkins-php.org/index.html
Top Related