drone 是一个不错的基于容器的ci/cd 工具,运行简单,同时插件也挺多,基本常见的轻量级的任务都是可以搞定的

环境准备

  • docker-compose 文件
version: '3'
services:
gogs:
image: gogs/gogs
ports:
- "10022:22"
- "3000:3000"
volumes:
- ./data/gogs:/data
depends_on:
- mysql
drone-db:
image: mysql:5.7.16
volumes:
- ./gogs/mysql:/var/lib/mysql
ports:
- 3309:3306
command: --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci
environment:
MYSQL_ROOT_PASSWORD: dalongrong
MYSQL_DATABASE: drone
MYSQL_USER: drone
MYSQL_PASSWORD: dalongrong
TZ: Asia/Shanghai
mysql:
image: mysql:5.7.16
volumes:
- ./drone-db/mysql:/var/lib/mysql
ports:
- 3308:3306
command: --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci
environment:
MYSQL_ROOT_PASSWORD: dalongrong
MYSQL_DATABASE: gogs
MYSQL_USER: gogs
MYSQL_PASSWORD: dalongrong
TZ: Asia/Shanghai
drone-server:
image: drone/drone:0.8.8
ports:
- "8000:8000"
volumes:
- ./drone:/var/lib/drone/
environment:
- DRONE_OPEN=true
- DRONE_HOST=http://10.6.197.9:8000 ## drone server 访问地址
- DRONE_DEBUG=true
- DRONE_DATABASE_DRIVER=mysql
- DRONE_DATABASE_DATASOURCE=root:dalongrong@tcp(drone-db:3306)/drone?parseTime=true
- DRONE_GOGS=true
- DRONE_GOGS_URL=http://gogs:3000
- DRONE_RPC_SECRET=ALQU2M0KdptXUdTPKcEw
- DRONE_SECRET=ALQU2M0KdptXUdTPKcEw
drone-agent:
image: drone/agent:0.8.8
depends_on:
- drone-server
environment:
- DRONE_SERVER=drone-server:9000
- DRONE_SECRET=ALQU2M0KdptXUdTPKcEw
- DRONE_DEBUG=true
- DOCKER_HOST=tcp://docker-bind:2375
docker-bind:
image: docker:dind
privileged: true
command: --storage-driver=overlay ## docker 文件存储的类型,需要结合操作系统,或者选择默认
  • 启动并配置gogs
    配置比较简单,参考界面提示进行操作就可以了
docker-compose up -d
  • 效果
    drone 0.8.8 集成gogs 进行ci/cd 处理-LMLPHP

配置drone 构建的项目

  • 项目添加.drone.yml
pipeline:
frontend:
image: node:9
commands:
- echo 'this is a demo app'
- echo 'demoapp'
  • 登陆drone 启用构建
    drone 0.8.8 集成gogs 进行ci/cd 处理-LMLPHP
    说明,因为都是本地环境,会有一个webhook url 的问题,drone 调用api 写入的是localhost:8000 造成webhook 无法生效,可以参考如下配置
    进入到gogs 项目
    drone 0.8.8 集成gogs 进行ci/cd 处理-LMLPHP
    drone 0.8.8 集成gogs 进行ci/cd 处理-LMLPHP

修改代码并测试

  • 修改gogs git 仓库代码
    很简单,随便修改几个文件就可以了
  • 效果
    drone 0.8.8 集成gogs 进行ci/cd 处理-LMLPHP

参考资料

https://0-8-0.docs.drone.io/install-for-gogs/
https://0-8-0.docs.drone.io/installation/

 
 
 
 
05-11 11:23