Drone持续集成PHP示例

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: [email protected]
    from_name: DroneCI
    host: smtp.qq.com
    port: 465
    username:
      from_secret: email_username
    password:
      from_secret: email_passwd
    recipients:
      - [email protected]
    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连接目标机器并更新机器代码;

第四步,持续集成结果通知,成功和失败均会发送邮件告知相关人员。

你可能感兴趣的:(Drone持续集成PHP示例)