使用 Drone 构建 Coding 项目

2019独角兽企业重金招聘Python工程师标准>>> hot3.png

使用 Drone 构建 Coding 项目

 

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

1、新建一个 OAuth 应用。『应用主页』填写自己部署的 Drone 所在主机的 URL,如:https://example.com;『回调地址』填写 Drone 的回调地址,一般为 Drone 主机加上/authorize,如:https://example.com/authorize。还可以给这个应用添加醒目的图标。最后点『创建应用』。 使用 Drone 构建 Coding 项目_第1张图片

2、进入刚才创建的应用,接下来要用到上面的『Client ID』和『Client Secret』。 使用 Drone 构建 Coding 项目_第2张图片

3、在要部署 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=
      - DRONE_CODING_GIT_MACHINE=
      - DRONE_SECRET=
    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_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 配置中的其他内容请根据实际情况填写。

4、在创建 docker-compose.yml 的目录里执行 docker-compose up,若上一步的配置正确,就能看到 Drone 启动输出的日志: 使用 Drone 构建 Coding 项目_第3张图片

5、用浏览器打开 Drone 所在主机的 URL 使用 Drone 构建 Coding 项目_第4张图片

6、点击登录,跳转至 Coding 的登录页面。如果已经登录 Coding,则会看到『应用授权』页面,这时点击『授权』 使用 Drone 构建 Coding 项目_第5张图片

7、若授权成功,即会跳转回 Drone 的首页,并在右上角看到已登录用户的 Coding 头像。 使用 Drone 构建 Coding 项目_第6张图片

8、点击头像,选择『用户设置』,便可看到项目列表。 使用 Drone 构建 Coding 项目_第7张图片使用 Drone 构建 Coding 项目_第8张图片

9、点击对应项目右侧的开关即可开启和关闭该项目的 Drone 持续集成。 使用 Drone 构建 Coding 项目_第9张图片

10、再次回到『仪表盘』即可以看到已开启了 Drone 持续集成的项目。 使用 Drone 构建 Coding 项目_第10张图片

11、向已开启 Drone 持续集成的仓库推送代码,即可触发构建过程。 使用 Drone 构建 Coding 项目_第11张图片使用 Drone 构建 Coding 项目_第12张图片

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

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

转载于:https://my.oschina.net/u/3803405/blog/1800025

你可能感兴趣的:(使用 Drone 构建 Coding 项目)