使用 Drone 構建 Coding 項目

使用 Drone 構建 Coding 項目

 

Drone 是一個輕量級的持續集成工具。它具有許多現代持續集成工具的特性:輕巧(Docker 鏡像不到 10M)、部署方便(docker-compose 一鍵部署)、經過 YAML 文件描述構建過程、內置支持主流的代碼託管平臺、使用 Docker 容器執行構建。 下面介紹如何使用 Drone 構建 Coding(平臺版/企業版)項目,實現開發、測試、部署的自動化。(介紹中使用的是 Coding 定製的 Drone,由於 Coding 的小夥伴們老是但願每時每刻都能見到可愛的洋蔥猴,這樣打起碼來特精神!^_^)git

一、新建一個 OAuth 應用。『應用主頁』填寫本身部署的 Drone 所在主機的 URL,如:https://example.com;『回調地址』填寫 Drone 的回調地址,通常爲 Drone 主機加上/authorize,如:https://example.com/authorize。還能夠給這個應用添加醒目的圖標。最後點『建立應用』。 在這裏輸入圖片描述github

二、進入剛纔建立的應用,接下來要用到上面的『Client ID』和『Client Secret』。 在這裏輸入圖片描述docker

三、在要部署 Drone 的 Linux 主機裏安裝好 Docker 和 Docker-Compose,而後建立名爲docker-compose.yml 的 Docker-Compose 配置文件,內容以下:瀏覽器

version: '2'

services:
  drone-server:
    image: houseboy/drone:20170512.1
    restart: always
    volumes: 
      - ./drone:/var/lib/drone/:rw
    environment:
      - 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.1
    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=<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 配置中的其餘內容請根據實際狀況填寫。測試

四、在建立 docker-compose.yml 的目錄裏執行 docker-compose up,若上一步的配置正確,就能看到 Drone 啓動輸出的日誌: 在這裏輸入圖片描述spa

五、用瀏覽器打開 Drone 所在主機的 URL 在這裏輸入圖片描述.net

六、點擊登陸,跳轉至 Coding 的登陸頁面。若是已經登陸 Coding,則會看到『應用受權』頁面,這時點擊『受權』 在這裏輸入圖片描述rest

七、若受權成功,即會跳轉回 Drone 的首頁,並在右上角看到已登陸用戶的 Coding 頭像。 在這裏輸入圖片描述日誌

八、點擊頭像,選擇『用戶設置』,即可看到項目列表。 在這裏輸入圖片描述在這裏輸入圖片描述

九、點擊對應項目右側的開關便可開啓和關閉該項目的 Drone 持續集成。 在這裏輸入圖片描述

十、再次回到『儀表盤』便可以看到已開啓了 Drone 持續集成的項目。 在這裏輸入圖片描述

十一、向已開啓 Drone 持續集成的倉庫推送代碼,便可觸發構建過程。 在這裏輸入圖片描述在這裏輸入圖片描述

上述介紹中用到集成了 Coding 的 Drone 版本源碼發佈在 https://github.com/Coding/drone,同時已經向源倉庫 https://github.com/drone/drone 提交了 PR,代碼正在審覈中。同時歡迎有興趣的碼士提交 PR 助力完善 Drone 對 Coding 的集成支持。

有關 Drone 的更多使用幫助請查看官方文檔:http://docs.drone.io/

相關文章
相關標籤/搜索