返回介绍

使用Drone进行持续集成与发布

发布于 2019-09-08 09:20:52 字数 3011 浏览 885 评论 0 收藏 0

Drone是一个用Go语言开发的基于容器运行的持续集成软件。

配置GitHub

使用Drone对GitHub上的代码进行持续构建与发布,需要首先在GitHub上设置一个OAuth,如下:

1. 在Github上创建一个新的OAtuh应用

访问此頁面,创建新的OAuth应用。

OAuth注册

填写应用程序的地址,因为是在本地与行,所以我们都填http://localhost

2. 获取OAtuh Client ID和Client Secret

在注册完成后就可以获得如下图所示的OAuth Client ID和Client Secret,保存下来,我们后面要用到。

OAuth key

使用docker-compose单机运行

我们在本地环境,使用docker-compose,按照Drone官方安装文档安装配置Drone。

我们将代码托管在GitHub上,需要Drone可以持续集成和发布GitHub的代码,因此需要修改docker-compose.yaml文件中的GitHub配置。

version: '2'

services:
  drone-server:
    image: drone/drone:0.8

    ports:
      - 80:8000
      - 9000
    volumes:
      - /var/lib/drone:/var/lib/drone/
    restart: always
    environment:
      - DRONE_OPEN=true
      - DRONE_HOST=${DRONE_HOST}
      - DRONE_GITHUB=true
      - DRONE_GITHUB_CLIENT=${DRONE_GITHUB_CLIENT}
      - DRONE_GITHUB_SECRET=${DRONE_GITHUB_SECRET}
      - DRONE_SECRET=${DRONE_SECRET}

  drone-agent:
    image: drone/agent:0.8

    command: agent
    restart: always
    depends_on:
      - drone-server
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock
    environment:
      - DRONE_SERVER=drone-server:9000
      - DRONE_SECRET=${DRONE_SECRET}
  • /var/lib/drone是在本地挂载的目录,请确保该目录已存在,且可以被docker访问到,Mac下可以在docker的共享目录中配置。
  • DRONE_SECRET可以是一个随机的字符串,要确保drone-serverdrone-clientDRONE_SECRET相同。
  • DRONE_GITHUB_CLIENTDRONE_GITHUB_SECRET即在前面申请的OAuth的Client ID和Client Secret。

启动Drone

使用下面的命令在本地启动drone:

docker-compose up

这样是在前台启动,加上-d参数就可以在后台启动。

访问 http://localhost 可以看到登陆画面。

Drone登陆界面

授权后可以看到GitHub repo设置。

Github启用repo设置

Github单个repo设置

参考

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文