美文网首页
drone 持续集成配置

drone 持续集成配置

作者: YiQinGuo | 来源:发表于2017-10-28 18:02 被阅读1125次

    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项目。

    WX20171028-175049@2x.png

    安装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的用户名密码登录如下图所示:

    WX20171028-175358@2x.png

    配置构建过程

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

    WX20171028-175538@2x.png

    .drone.yml内容

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

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

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

    WX20171028-175724@2x.png

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

    WX20171028-175921@2x.png

    相关文章

      网友评论

          本文标题:drone 持续集成配置

          本文链接:https://www.haomeiwen.com/subject/mypspxtx.html