透過 Drone CLI 手動觸發 CI/CD 流程

drone promotion

相信大家對於 Drone 並不陌生,這次來介紹 Drone 1.0 的新功能 (更多的 1.0 功能會陸續介紹,也可以參考之前的文章),叫做 promotion,為什麼作者會推出這功能呢?大家在團隊工作時,有些步驟真的無法導入 CI/CD 自動化流程,而是需要人工介入後,再做後續處理?相信一定會遇到此狀況,PM 或老闆看過沒問題後,才需要手動觸發流程,在此功能以前,都會麻煩工程師幫忙做後續自動化流程,但是有了 promotion,現在連 PM 都可以透過 Drone CLI 來自己做部署啦,這邊就是介紹給大家,如何透過 Drone CLI 指令來觸發已存在的工作項目。

影片教學

如何使用

首先你必須要先安裝好 Drone CLI,安裝方式可以直接參考官方教學即可,透過底下例子來了解怎麼使用 promotion

kind: pipeline
name: testing

steps:
- name: stage
  image: golang
  commands:
  - echo "stage"
  when:
    event: [ promote ]
    target: [ staging ]

- name: production
  image: golang
  commands:
  - echo "production"
  when:
    event: [ promote ]
    target: [ production ]

- name: testing
  image: golang
  commands:
  - echo "testing"
  when:
    event: [ promote ]
    target: [ testing ]

上面可以看到,在 when 的條件子句內,可以設定 event 為 promote,接著 target 可以設定為任意名稱,只要是 promote 的 event type,在透過 git commit 預設都不會啟動的,只能透過 drone CLI 方式才可以觸發,那該如何執行命令呢?請看底下

drone build promote <repo> <build> <environment>

其中 build 就是直接在後台列表上找一個已經執行過的 job ID

drone build promote appleboy/golang-example 6 production

心得

Drone 提供手動觸發的方式相當方便,畢竟有些情境真的是需要人工審核確認過後,才可以進行後續的流程,透過此方式,也可以寫一些 routine 的 job 讓其他開發者,甚至 PM 可以透過自己的電腦觸發流程。