iT邦幫忙

第 11 屆 iT 邦幫忙鐵人賽

DAY 16
0

花了兩天的時間完成了 GitlabDrone 的建置,那麼也該來示範一下該如何觸發 Drone 執行發布事件。

  • 首先手動到 Gitlab 建置一個專案
    (以 demo 作為以下示範,我的 GitHub 也可以找到示範用的代碼)

  • 如果是「本機」環境測試用,記得要開啟 Gitlab 本地端的 webhook
    「Settings --> Network --> Outbound requests」

  • 接著重新回到 Drone 頁面 Sync Gitlab 資料
    按下 sync 按鈕後,等待幾秒鐘即可看到 demo 專案顯示在 drone 首頁啦。

  • 啟用 drone 專案
    當啟用成功後會看見以下話面,且表示 Gitlabdronewebhook 已經建立成功。

以上的步驟就完成了,接著可以開始撰寫 .drone.yml 官方教學文件

備註:Drone 0.8 與 1.0 後的 yaml 檔案撰寫差異很大,需要在依據官方文件做參考,以下示範1.0之後的版本 Drone 0.8 文件

yaml檔案中,除了原本的 clone 事件外,還有三個事件分別是「host、echo、dev_action」,

  • host: 打印出容器內 /etc/hosts 內容
  • echo: 印出 78523 內容
  • dev-action: 印出 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 執行事件。


上一篇
Day15 使用 Docker 快速建置 Drone
下一篇
Day17 Drone Plugin
系列文
就是「懶」才更需要重視DevOps30

尚未有邦友留言

立即登入留言