2019獨角獸企業重金招聘Python工程師標準>>>
使用 Drone 構建 Coding 項目
?
Drone 是一個輕量級的持續集成工具。它具備許多現代持續集成工具的特性:輕巧(Docker 鏡像不到 10M)、部署方便(docker-compose 一鍵部署)、通過 YAML 文件描述構建過程、內置支持主流的代碼托管平臺、使用 Docker 容器執行構建。 下面介紹如何使用 Drone 構建 Coding(平臺版/企業版)項目,實現開發、測試、部署的自動化。(介紹中使用的是 Coding 定制的 Drone,因為 Coding 的小伙伴們總是希望每時每刻都能見到可愛的洋蔥猴,這樣打起碼來特精神!^_^)
1、新建一個 OAuth 應用。『應用主頁』填寫自己部署的 Drone 所在主機的 URL,如:https://example.com
;『回調地址』填寫 Drone 的回調地址,一般為 Drone 主機加上/authorize
,如:https://example.com/authorize
。還可以給這個應用添加醒目的圖標。最后點『創建應用』。?
2、進入剛才創建的應用,接下來要用到上面的『Client ID』和『Client Secret』。?
3、在要部署 Drone 的 Linux 主機里安裝好 Docker 和 Docker-Compose,然后創建名為docker-compose.yml
?的 Docker-Compose 配置文件,內容如下:
version: '2'services:drone-server:image: houseboy/drone:20170512.1restart: alwaysvolumes: - ./drone:/var/lib/drone/:rwenvironment:- 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.1command: agentrestart: alwaysdepends_on: [ drone-server ]volumes: - /var/run/docker.sock:/var/run/docker.sockenvironment:- 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 配置中的其他內容請根據實際情況填寫。
4、在創建?docker-compose.yml
?的目錄里執行?docker-compose up
,若上一步的配置正確,就能看到 Drone 啟動輸出的日志:?
5、用瀏覽器打開 Drone 所在主機的 URL?
6、點擊登錄,跳轉至 Coding 的登錄頁面。如果已經登錄 Coding,則會看到『應用授權』頁面,這時點擊『授權』?
7、若授權成功,即會跳轉回 Drone 的首頁,并在右上角看到已登錄用戶的 Coding 頭像。?
8、點擊頭像,選擇『用戶設置』,便可看到項目列表。?
9、點擊對應項目右側的開關即可開啟和關閉該項目的 Drone 持續集成。?
10、再次回到『儀表盤』即可以看到已開啟了 Drone 持續集成的項目。?
11、向已開啟 Drone 持續集成的倉庫推送代碼,即可觸發構建過程。?
上述介紹中用到集成了 Coding 的 Drone 版本源碼發布在?https://github.com/Coding/drone,同時已經向源倉庫?https://github.com/drone/drone?提交了 PR,代碼正在審核中。同時歡迎有興趣的碼士提交 PR 助力完善 Drone 對 Coding 的集成支持。
有關 Drone 的更多使用幫助請查看官方文檔:http://docs.drone.io/