-
Notifications
You must be signed in to change notification settings - Fork 8
20190730_trigger the drone job via promotion
title: "透過 Drone CLI 手動觸發 CI/CD 流程" date: 2019-07-30 type: blog author: AppleBoy link: https://blog.wu-boy.com/2019/07/trigger-the-drone-job-via-promotion/ layout: post comments: true
相信大家對於 Drone 並不陌生,這次來介紹 Drone 1.0 的新功能 (更多的 1.0 功能會陸續介紹,也可以參考之前的文章),叫做 promotion,為什麼作者會推出這功能呢?大家在團隊工作時,有些步驟真的無法導入 CI/CD 自動化流程,而是需要人工介入後,再做後續處理?相信一定會遇到此狀況,PM 或老闆看過沒問題後,才需要手動觸發流程,在此功能以前,都會麻煩工程師幫忙做後續自動化流程,但是有了 promotion,現在連 PM 都可以透過 Drone CLI 來自己做部署啦,這邊就是介紹給大家,如何透過 Drone CLI 指令來觸發已存在的工作項目。
<iframe width="560" height="315" src="https://www.youtube.com/embed/4FnxAJLKaug" frameborder="0" allow="accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>首先你必須要先安裝好 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 可以透過自己的電腦觸發流程。
-
[Drone] 將單一 Job 分配到多台機器,降低部署執行時間 (0)
-
用 Ansible 安裝 Drone CI/CD 開源專案 (0)
-
有效率的用 jsonnet 撰寫 Drone CI/CD 設定檔 (12)
-
在本機端導入 Drone CLI 做專案測試 (1)
-
開源專案 Gitea 支援 OAuth Provider (1)
-
在 docker-in-docker 環境中使用 cache-from 提升編譯速度 (5)
-
Go Module 導入到專案內且搭配 Travis CI 或 Drone 工具 (3)
-
Drone 搭配 Kubernetes 部署 Go 語言項目 (0)
-
用 10 分鐘安裝好 Drone 搭配 GitLab (0)
-
Drone CI/CD 支援 Auto cancellation 機制 (0)