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

使用 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。还可以给这个应用添加醒目的图标。最后点『创建应用』。 

2、进入刚才创建的应用,接下来要用到上面的『Client ID』和『Client Secret』。 

3、在要部署 Drone 的 Linux 主机里安装好 Docker 和 Docker-Compose,然后创建名为docker-compose.yml 的 Docker-Compose 配置文件,内容如下:

version: '2'services:drone-server:image: houseboy/drone:20170512.1restart: alwaysvolumes: - ./drone:/var/lib/drone/:rwenvironment:- 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.1command: agentrestart: alwaysdepends_on: [ drone-server ]volumes: - /var/run/docker.sock:/var/run/docker.sockenvironment:- 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 配置中的其他内容请根据实际情况填写。

4、在创建 docker-compose.yml 的目录里执行 docker-compose up,若上一步的配置正确,就能看到 Drone 启动输出的日志: 

5、用浏览器打开 Drone 所在主机的 URL 

6、点击登录,跳转至 Coding 的登录页面。如果已经登录 Coding,则会看到『应用授权』页面,这时点击『授权』 

7、若授权成功,即会跳转回 Drone 的首页,并在右上角看到已登录用户的 Coding 头像。 

8、点击头像,选择『用户设置』,便可看到项目列表。 

9、点击对应项目右侧的开关即可开启和关闭该项目的 Drone 持续集成。 

10、再次回到『仪表盘』即可以看到已开启了 Drone 持续集成的项目。 

11、向已开启 Drone 持续集成的仓库推送代码,即可触发构建过程。 

上述介绍中用到集成了 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 项目相关推荐

  1. Scons构建C++项目

    旧博文,搬到 csdn 原文:http://rebootcat.com/2020/08/30/scons/ 前言 我是一个 linux c++ 开发者,但是一直对 Makefile 的语法很是头痛,每 ...

  2. vuex构建vue项目_如何使用Vue.js,Vuex,Vuetify和Firebase构建单页应用程序

    vuex构建vue项目 如何使用Vuetify和Vue路由器安装Vue并构建SPA (How to install Vue and build an SPA using Vuetify and Vue ...

  3. gradle构建web项目_25多个Web资源可帮助您构建项目

    gradle构建web项目 This article was created in partnership with Mekanism. Thank you for supporting the pa ...

  4. 在Eclipse中使用Maven构建Spring项目

    最新版的Spring需要使用Maven构建,本文讲述怎么在Eclipse构建Maven项目,以配置Spring项目为例. maven简单介绍 maven是构建工具,也是构建管理工具.ant只是构建工具 ...

  5. vue使用命令行构建完项目后_vue-cli 构建项目在IE中无法运行解决方式(build之后可运行)...

    IE浏览器(只考虑IE11,更低版本我没考虑)运行时报 Promise未定义的错误 解决办法: 1. 安装babel-polyfill (1.)  npm install babel-polyfill ...

  6. Maven实战(三)Eclipse构建Maven项目

    2019独角兽企业重金招聘Python工程师标准>>> 1. 安装m2eclipse插件     要用Eclipse构建Maven项目,我们需要先安装meeclipse插件     ...

  7. maven(3)------maven构建web项目详细步骤

    eclipse集成工具,轻松通过maven构建web项目步骤如下: 一, 右键,new -->project, 进入下一页面 二,选择"Maven Project", 点击下 ...

  8. 在 Jenkins 中使用声明式 Pipeline 构建 Android 项目

    Blue Ocean 是 Jenkins 推出的一套新的 UI,对比经典 UI 更具有现代化气息.2017 年 4 月 James Dumay 在博客上正式推出了 Blue Ocean 1.0. 兼容 ...

  9. 转】用Maven构建Mahout项目

    原博文出自于: http://blog.fens.me/hadoop-mahout-maven-eclipse/ 感谢! 用Maven构建Mahout项目 Hadoop家族系列文章,主要介绍Hadoo ...

最新文章

  1. 自动化测试工具的选择
  2. java 图片刷新页面_js修改img的src属性刷新图片时的图片缓存问题
  3. 问题 E: 序列操作Ⅰ(01背包)
  4. java byte(字节_【原创】Java中Byte字节流处理的自定义方法库2
  5. JLabel标签文字换行
  6. 一个最简单的WebSocket hello world demo
  7. Python与MySQL连接
  8. 从0到1分步实现一个出生日期的正则表达式(JavaScript)
  9. 说说你对Jdk并发包中的CAS实现的了解?
  10. 手把手带你走进卷积神经网络!
  11. 源码解读Linux的limits.conf文件
  12. android 退出功能,android中activity连按两次返回键退出功能
  13. PyTorch 多机多卡训练:分布式实战与技巧
  14. 服务器串口协议,基于TCPIP协议串口通信服务器设计说明.docx
  15. 摄影测量——EPS三维测图软件正射影像+三维模型后期成果处理(附软件安装包+学习视频)
  16. How to read Ext4 in Windows 10
  17. php字符串分割函数,PHP字符串分割函数explode,strtok,str_split的用法
  18. Shadow Defender 1.4.0.561 简体中文注册码破解版(最好用的影子保护系统)
  19. ZYNQ研究----(3)7100 裸跑LWIP协议栈
  20. DB2 数据库的备份与还原

热门文章

  1. python采用编译型方式执行_Python程序的执行过程 解释型语言和编译型语言
  2. 2017蓝桥c语言真题,[蓝桥杯][2017年第八届真题]发现环 (C语言代码)------------C语言——菜鸟级...
  3. python3项目源代码下载_2019年最值得关注的34个Python开源项目——Let's go!
  4. 【caffe-windows】Linux至Windows平台的caffe移植
  5. 第一章:线性空间和线性变换
  6. Python之令人心烦意乱的字符编码与转码
  7. mysql日期格式转化
  8. SQL Server 数据库查找重复记录的几种方法
  9. 我与C++的不解情缘
  10. 导出Excel神器最终版