jenkins по русски
TRANSCRIPT
![Page 1: Jenkins по русски](https://reader034.vdocuments.site/reader034/viewer/2022052606/58a7c45e1a28ab6b5a8b5443/html5/thumbnails/1.jpg)
Jenkins – инструмент для непрерывной интеграции
Как правильно настроить эко-систему по сборке PHP-проектов
![Page 2: Jenkins по русски](https://reader034.vdocuments.site/reader034/viewer/2022052606/58a7c45e1a28ab6b5a8b5443/html5/thumbnails/2.jpg)
CI – Continuous Integration
Другими словами, это инструмент, который выполняет в автоматическом режиме поставленные ему задачи
Применительно к проектам это может быть: прогон тестов, проверка на наличие ошибок, генерация документации и многое другое. Все эти задачи описываются один раз в специальном файле build.xml и далее jenkins по расписанию выполняет все описанное в файле
![Page 3: Jenkins по русски](https://reader034.vdocuments.site/reader034/viewer/2022052606/58a7c45e1a28ab6b5a8b5443/html5/thumbnails/3.jpg)
Пример типового build файла
![Page 4: Jenkins по русски](https://reader034.vdocuments.site/reader034/viewer/2022052606/58a7c45e1a28ab6b5a8b5443/html5/thumbnails/4.jpg)
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 по русски](https://reader034.vdocuments.site/reader034/viewer/2022052606/58a7c45e1a28ab6b5a8b5443/html5/thumbnails/5.jpg)
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 по русски](https://reader034.vdocuments.site/reader034/viewer/2022052606/58a7c45e1a28ab6b5a8b5443/html5/thumbnails/6.jpg)
Переходим в Jenkins
![Page 7: Jenkins по русски](https://reader034.vdocuments.site/reader034/viewer/2022052606/58a7c45e1a28ab6b5a8b5443/html5/thumbnails/7.jpg)
Создание новой сборки
Создаем новую сборку,
Наша задача, автоматизировать сборку проекта, следовательно jenkins должен подтягивать его из репозитория и выполнять описанные задачи
![Page 8: Jenkins по русски](https://reader034.vdocuments.site/reader034/viewer/2022052606/58a7c45e1a28ab6b5a8b5443/html5/thumbnails/8.jpg)
Установка репозитория
![Page 9: Jenkins по русски](https://reader034.vdocuments.site/reader034/viewer/2022052606/58a7c45e1a28ab6b5a8b5443/html5/thumbnails/9.jpg)
Установка задач
![Page 10: Jenkins по русски](https://reader034.vdocuments.site/reader034/viewer/2022052606/58a7c45e1a28ab6b5a8b5443/html5/thumbnails/10.jpg)
Запуск
• Запускаем сборку
![Page 11: Jenkins по русски](https://reader034.vdocuments.site/reader034/viewer/2022052606/58a7c45e1a28ab6b5a8b5443/html5/thumbnails/11.jpg)
Результат
![Page 12: Jenkins по русски](https://reader034.vdocuments.site/reader034/viewer/2022052606/58a7c45e1a28ab6b5a8b5443/html5/thumbnails/12.jpg)
Завершение
Останется либо установить таймер, либо запускать вручную, и jenkins будет производить сборку и отображать результаты, таким образом можно динамически следить за чистотой кода, отсутствием неиспользуемых переменных и методов, покрытия тестами.
http://jenkins-php.org/index.html