PHP配置持續(xù)集成
學(xué)習(xí)Drone安裝及配置時,會發(fā)現(xiàn)配置項有一個以 .drone.yml
命令的文件茂缚,代碼推送至Git倉庫時戏罢,會觸發(fā)鉤子執(zhí)行Drone配置的持續(xù)集成管道,將解析yml的文件去執(zhí)行脚囊。
可以參考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容器方式執(zhí)行持續(xù)集成;
第一步悔耘,拉取composer鏡像安裝擴展文件讲岁,并掛載到宿主目錄(加快構(gòu)建),如果鏡像存在則不再拉取最新鏡像衬以;
第二步缓艳,PHP用例測試,執(zhí)行項目中編寫的單元測試用例看峻,成功進(jìn)行下一步阶淘,失敗則終止;
第三步备籽,測試用例通過后舶治,通過ssh連接目標(biāo)機器并更新機器代碼;
第四步车猬,持續(xù)集成結(jié)果通知霉猛,成功和失敗均會發(fā)送郵件告知相關(guān)人員。