使用 Drone 构建 Coding 项目

使用 Drone 构建 Coding 项目

 

Drone 是一个轻量级的持续集成工具。它具有许多现代持续集成工具的特性:轻巧(Docker 镜像不到 10M)、部署方便(docker-compose 一键部署)、经过 YAML 文件描述构建过程、内置支持主流的代码托管平台、使用 Docker 容器执行构建。 下面介绍如何使用 Drone 构建 Coding(平台版/企业版)项目,实现开发、测试、部署的自动化。(介绍中使用的是 Coding 定制的 Drone,由于 Coding 的小伙伴们老是但愿每时每刻都能见到可爱的洋葱猴,这样打起码来特精神!^_^)git

一、新建一个 OAuth 应用。『应用主页』填写本身部署的 Drone 所在主机的 URL,如:https://example.com;『回调地址』填写 Drone 的回调地址,通常为 Drone 主机加上/authorize,如:https://example.com/authorize。还能够给这个应用添加醒目的图标。最后点『建立应用』。 在这里输入图片描述github

二、进入刚才建立的应用,接下来要用到上面的『Client ID』和『Client Secret』。 在这里输入图片描述docker

三、在要部署 Drone 的 Linux 主机里安装好 Docker 和 Docker-Compose,而后建立名为docker-compose.yml 的 Docker-Compose 配置文件,内容以下:浏览器

version: '2'

services:
  drone-server:
    image: houseboy/drone:20170512.1
    restart: always
    volumes: 
      - ./drone:/var/lib/drone/:rw
    environment:
      - DRONE_OPEN=true
      - DRONE_CODING=true
      - DRONE_CODING_CLIENT=<应用的 Client ID>
      - DRONE_CODING_SECRET=<应用的 Client Secret>
      - DRONE_CODING_URL=<Coding 主页>
      - DRONE_CODING_GIT_MACHINE=<Coding Git 主机>
      - DRONE_SECRET=<drone-server 和 drone-agent 的通讯密钥>
    ports:
      - "80:8000"

  drone-agent:
    image: houseboy/drone:20170512.1
    command: agent
    restart: always
    depends_on: [ drone-server ]
    volumes: 
      - /var/run/docker.sock:/var/run/docker.sock
    environment:
      - DRONE_SERVER=ws://drone-server:8000/ws/broker
      - DRONE_SECRET=<drone-server 和 drone-agent 的通讯密钥>

主要环境变量的说明:工具

  • DRONE_CODING 要为 true
  • DRONE_CODING_CLIENT 填写上一步获得的『Client ID』。
  • DRONE_CODING_SECRET 填写上一步获得的『Client Secret』。
  • DRONE_CODING_URL 为 Coding 主页。平台版填 https://coding.net;企业版填企业对应的https://*.coding.net 子域名的 URL。
  • DRONE_CODING_GIT_MACHINE 为 Coding Git 主机。平台版填 git.coding.net;企业版填 e.coding.net
  • DRONE_SECRET 为随机字符串,是用于 drone-server 和 drone-agent 之间的通讯,只要两个都填写同样值便可。

docker-compose 配置中的其余内容请根据实际状况填写。测试

四、在建立 docker-compose.yml 的目录里执行 docker-compose up,若上一步的配置正确,就能看到 Drone 启动输出的日志: 在这里输入图片描述spa

五、用浏览器打开 Drone 所在主机的 URL 在这里输入图片描述.net

六、点击登陆,跳转至 Coding 的登陆页面。若是已经登陆 Coding,则会看到『应用受权』页面,这时点击『受权』 在这里输入图片描述rest

七、若受权成功,即会跳转回 Drone 的首页,并在右上角看到已登陆用户的 Coding 头像。 在这里输入图片描述日志

八、点击头像,选择『用户设置』,即可看到项目列表。 在这里输入图片描述在这里输入图片描述

九、点击对应项目右侧的开关便可开启和关闭该项目的 Drone 持续集成。 在这里输入图片描述

十、再次回到『仪表盘』便可以看到已开启了 Drone 持续集成的项目。 在这里输入图片描述

十一、向已开启 Drone 持续集成的仓库推送代码,便可触发构建过程。 在这里输入图片描述在这里输入图片描述

上述介绍中用到集成了 Coding 的 Drone 版本源码发布在 https://github.com/Coding/drone,同时已经向源仓库 https://github.com/drone/drone 提交了 PR,代码正在审核中。同时欢迎有兴趣的码士提交 PR 助力完善 Drone 对 Coding 的集成支持。

有关 Drone 的更多使用帮助请查看官方文档:http://docs.drone.io/

相关文章
相关标签/搜索