drone 持续集成配置

Drone 是一个轻量级,为容器构建的强大的持续交付平台。drone提供的功能感觉强大而不臃肿,下面就记录一下drone使用的过程。
Drone有server和agent两个组件,可以通过docker-compose实现快速安装,可以集成github,gitlab,gogs等多种代码托管平台,因为这里需要用到webhook的功能,所以就自己搭建了一个私有的gogs。gogs的搭建非常简单,也可以通过docker-compose快速启动一个。

安装Gogs

version: '2'
services:
    postgres:
      image: postgres:9.5
      restart: always
      ports:
       - "5432:5432"
      environment:
       - "POSTGRES_USER=admin"
       - "POSTGRES_PASSWORD=123456"
       - "POSTGRES_DB=gogs"
      networks:
       - gogs
    gogs:
      image: gogs/gogs:latest
      restart: always
      ports:
       - "10022:22"
       - "3000:3000"
      links:
       - postgres
      environment:
       - "RUN_CROND=true"
      networks:
       - gogs
      depends_on:
       - postgres

networks:
    gogs:
      driver: bridge

这个一个gogs的compose文件,通过这个文件可以启动一个gogs项目。

安装Drone

version: '2'

services:
  drone-server:
    image: drone/drone:0.7
    ports:
      - 8000:8000
    volumes:
      - /tmp/drone:/var/lib/drone/
    restart: always
    environment:
      - DRONE_OPEN=true
      - DRONE_ADMIN=yqguo
      - DRONE_HOST=192.168.31.114
      - DRONE_SECRET=yqguo
      - DRONE_GOGS=true
      - DRONE_GOGS_URL=http://192.168.31.114:3000
      # - DRONE_GOGS_GIT_USERNAME=yqguo
      # - DRONE_GOGS_GIT_PASSWORD=123456
      - DRONE_GOGS_PRIVATE_MODE=true
      - DRONE_GOGS_SKIP_VERIFY=false
  drone-agent:
    image: drone/drone:0.7
    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=yqguo

这是drone的docker-compose文件,通过这个yaml文件可以快速启动drone项目。
启动以后用gogs的用户名密码登录如下图所示:

配置构建过程

在gogs里面新建一个项目并添加.drone.yml编译文件。

.drone.yml内容

pipeline:
  build:
    image: golang
    commands:
      - go build

配置文件就是单纯的执行了一次go build命令。

然后在drone里面开启dronetest项目构建:

到最后往dronetest里面push代码可以看到drone的构建过程:

你可能感兴趣的:(drone 持续集成配置)