相信大家對於 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 可以透過自己的電腦觸發流程。