drone 0.8.8 整合gogs 進行ci/cd 處理
阿新 • • 發佈:2018-11-15
drone 是一個不錯的基於容器的ci/cd 工具,執行簡單,同時外掛也挺多,基本常見的輕量級的任務都是可以搞定的
環境準備
使用docker in docker
- 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:
[email protected](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 構建的專案
- 專案新增.drone.yml
pipeline:
frontend:
image: node:9
commands:
- echo 'this is a demo app'
- echo 'demoapp'
- 登陸drone 啟用構建
說明,因為都是本地環境,會有一個webhook url 的問題,drone 呼叫api 寫入的是localhost:8000 造成webhook 無法生效,可以參考如下配置
進入到gogs 專案
修改程式碼並測試
- 修改gogs git 倉庫程式碼
很簡單,隨便修改幾個檔案就可以了 - 效果
參考資料
https://0-8-0.docs.drone.io/install-for-gogs/
https://0-8-0.docs.drone.io/installation/