花了兩天的時間完成了 Gitlab
與 Drone
的建置,那麼也該來示範一下該如何觸發 Drone
執行發布事件。
首先手動到 Gitlab 建置一個專案
(以 demo 作為以下示範,我的 GitHub 也可以找到示範用的代碼)
如果是「本機」環境測試用,記得要開啟 Gitlab
本地端的 webhook
「Settings --> Network --> Outbound requests」
接著重新回到 Drone
頁面 Sync Gitlab
資料
按下 sync
按鈕後,等待幾秒鐘即可看到 demo
專案顯示在 drone
首頁啦。
啟用 drone
專案
當啟用成功後會看見以下話面,且表示 Gitlab
與drone
的 webhook
已經建立成功。
以上的步驟就完成了,接著可以開始撰寫 .drone.yml
官方教學文件
備註:Drone 0.8 與 1.0 後的 yaml
檔案撰寫差異很大,需要在依據官方文件做參考,以下示範1.0之後的版本 Drone 0.8 文件
在 yaml
檔案中,除了原本的 clone
事件外,還有三個事件分別是「host、echo、dev_action」,
/etc/hosts
內容78523
內容 111111
內容kind: pipeline
type: docker # 在 Docker 內部執行管道命令
name: clone # 可自行定義的名稱
steps:
# 事件一
- name: host # 事件一:可自行定義的名稱
image: alpine # 使用 alpine 容器
commands: # 預執行的 shell 指令,這邊印出 hosts 內容
- cat /etc/hosts
when: # 無論 clone 成功或失敗,都會跑該事件
status: [ success, failure ]
# 事件二
- name: echo # 事件二:可自行定義的名稱
image: plugins/git # 使用 plugins/git 容器
commands: # 預執行的 shell 指令,這邊印出 78523 內容
- echo "78523"
when: # 當觸發條件為 master 分支時會執行的動作
branch:
- master
# 事件三
- name: dev_action # 事件三:可自行定義的名稱
image: plugins/git # 使用 plugins/git 容器
commands: # 預執行的 shell 指令,這邊印出 111111 內容
- echo "111111"
when: # 當觸發條件為 develop 分支時會執行的動作
branch:
- develop
trigger: # 觸發 pipeline 條件,分支為 master,且進行 push 行為
branch:
- master
event:
- push
撰寫完 yaml
檔案後,只需要在 master
分支執行 push
行為,接下來 Gitlab
會自動 tigger Drone
執行事件。