12
Jenkins – инструмент для непрерывной интеграции Как правильно настроить эко-систему по сборке PHP-проектов

Jenkins по русски

Embed Size (px)

Citation preview

Page 1: Jenkins по русски

Jenkins – инструмент для непрерывной интеграции

Как правильно настроить эко-систему по сборке PHP-проектов

Page 2: Jenkins по русски

CI – Continuous Integration

Другими словами, это инструмент, который выполняет в автоматическом режиме поставленные ему задачи

Применительно к проектам это может быть: прогон тестов, проверка на наличие ошибок, генерация документации и многое другое. Все эти задачи описываются один раз в специальном файле build.xml и далее jenkins по расписанию выполняет все описанное в файле

Page 3: Jenkins по русски

Пример типового build файла

Page 4: Jenkins по русски

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>

Page 5: Jenkins по русски

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

Который делает дамп базы данных, и создает уже папки для самого проекта.

Page 6: Jenkins по русски

Переходим в Jenkins

Page 7: Jenkins по русски

Создание новой сборки

Создаем новую сборку,

Наша задача, автоматизировать сборку проекта, следовательно jenkins должен подтягивать его из репозитория и выполнять описанные задачи

Page 8: Jenkins по русски

Установка репозитория

Page 9: Jenkins по русски

Установка задач

Page 10: Jenkins по русски

Запуск

• Запускаем сборку

Page 11: Jenkins по русски

Результат

Page 12: Jenkins по русски

Завершение

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

http://jenkins-php.org/index.html