美文网首页
Drone持续集成PHP示例

Drone持续集成PHP示例

作者: 谦谦少年 | 来源:发表于2021-12-27 17:31 被阅读0次

    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连接目标机器并更新机器代码;

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

    相关文章

      网友评论

          本文标题:Drone持续集成PHP示例

          本文链接:https://www.haomeiwen.com/subject/lmiyqrtx.html