使用jenkins对Laravel项目进行持续集成
搭建 Jenkins
参考官方说明
本次测试搭建在 CentOS 上, 所以用的是 yum 的方式
wget -O /etc/yum.repos.d/jenkins.repo https://pkg.jenkins.io/redhat-stable/jenkins.repo
rpm --import https://pkg.jenkins.io/redhat-stable/jenkins.io.key
yum install jenkins -y
yum install jre -y
service jenkins start
如果没有错误, jenkins 会在 8080 端口启动了 http 服务, 在浏览器输入 ip:8080 应该就能访问了.
按照说明, 填写初始管理员密码 -> 安装需要的插件 -> 添加管理员账户, 就 OK 了
为运行 Laravel 准备环境
rpm -Uvh https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
rpm -Uvh https://mirror.webtatic.com/yum/el7/webtatic-release.rpm
yum install php56w php56w-opcache php56w-pecl-xdebug php56w-mysqli phpunit -y
说明:
- xdebug 是为了 phpunit 出覆盖率
再配置 Jenkins
-
添加 PHP 覆盖率插件
Manage Jenkins -> Manage Plugins, 添加
Clover PHP plugin
和Gitlab Hook Plugin
插件, 必要时重启 Jenkins -
添加 ssh 私钥
Credentials -> System -> Global credentials -> Add Credentials
SSH Username with private key, 选择合适的选项 ( 我使用的是粘贴私钥 )
为 Jenkins 添加 Job
选项目类型( 我选的 Freestyle project ), 添名字 ( 测试项目: 报警中心 )
-
Source Code Management
Git ->
git@git.letv.cn:inf/alarm_center.git
, 选好刚才添加的 Credential, 选择分支 -
Build Triggers
勾选 GitHub hook trigger for GITScm polling, 配合 Gitlab Hook Plugin
-
Build
选择 shell, 填写类似脚本
/usr/local/bin/composer install --prefer-dist --optimize-autoloader # 生成 .env 文件, 如果需要数据库, 也在这里配置 echo 'APP_ENV=local APP_KEY=base64:Qfj14MI0OZyc/BvaYcLBdXHWzcU2bqDz84Ro0+Tw7eU= APP_DEBUG=true APP_LOG_LEVEL=debug APP_URL=http://localhost' > .env vendor/bin/phpunit --coverage-clover ./build
-
Post-build Actions
Publish Clover PHP Coverage Report, 位置是上面脚本中 phpunit 的输出文件 ./build
还有很多其他 action 可选, 比如发邮件之类的
在 Gitlab 上添加 hook
项目 -> Setting -> Web Hooks -> 选好trigger, url 添 http://your-jenkins-server/gitlab/build_now
参考
这样, 在触发 Gitlab trigger 时, jenkins 就会开始对项目进行测试了, 执行脚本中添加部署策略, 则可以进行自动部署
本文地址 使用jenkins对Laravel项目进行持续集成 转载请注明出处