PHP配置持续集成
学习Drone安装及配置时,会发现配置项有一个以 .drone.yml
命令的文件,代码推送至Git仓库时,会触发钩子执行Drone配置的持续集成管道,将解析yml的文件去执行。
可以参考Drone提供的官方文档:Drone的PHP示例
示例文件如下:
kind: pipeline
type: docker
name: lumen-test
steps:
- name: install
pull: if-not-exists
image: composer
volumes:
- name: cache
path: /drone/src/vendor
commands:
- composer install
- name: test
pull: if-not-exists
image: php:7
volumes:
- name: cache
path: /drone/src/vendor
commands:
- cp .env.example .env
- ./vendor/bin/phpunit
- name: update
pull: if-not-exists
image: appleboy/drone-ssh
settings:
host: 127.0.0.1
username:
from_secret: 114_user
password:
from_secret: 114_passwd
script:
- cd /home/test/lumen-test
- pwd && ls -l
- /usr/local/git/bin/git pull origin master
- echo success
- name: notify
pull: if-not-exists
image: drillster/drone-email
settings:
from_address: test@qq.com
from_name: DroneCI
host: smtp.qq.com
port: 465
username:
from_secret: email_username
password:
from_secret: email_passwd
recipients:
- test@qq.com
recipients_only: true
body: file:///drone/src/drone-email.html
when:
status:
- success
- failure
volumes:
- name: cache
host:
path: /docker/drone/cache
yml文件解释:
steps可以配置多个,以上的文件意思为:
使用docker容器方式执行持续集成;
第一步,拉取composer镜像安装扩展文件,并挂载到宿主目录(加快构建),如果镜像存在则不再拉取最新镜像;
第二步,PHP用例测试,执行项目中编写的单元测试用例,成功进行下一步,失败则终止;
第三步,测试用例通过后,通过ssh连接目标机器并更新机器代码;
第四步,持续集成结果通知,成功和失败均会发送邮件告知相关人员。
网友评论