您可以將 Cloud Deploy 與其他仰賴的軟體提交系統整合。本頁面說明如何將 Cloud Deploy 與下列項目整合:
- 測試工具
- 工作流程管理
請參閱「整合 CI 系統」,瞭解如何透過 CI 管道呼叫 Cloud Deploy。
事前準備
本頁的操作說明假設您已符合下列條件:
您至少已定義一個目標,且發布管道會參照該目標。
您已設定 Pub/Sub 通知,可接收下列主題的通知:
clouddeploy-operations
clouddeploy-approvals
與自動化測試整合
您可以使用 Cloud Deploy 與 Pub/Sub 整合測試與發布管道,以便自動提昇版本,實現持續性發布。
您也可以在推行計畫中使用註解,提供測試結果的連結。詳情請參閱「在 Cloud Deploy 中使用標籤和註解」。
使用 Pub/Sub 自動進行升級
監聽
clouddeploy-operations
主題中的 Pub/Sub 訊息。訊息包含下列屬性:
Action: SUCCEED
ResourceType: Rollout
Resource: projects/.../locations/.../deliveryPipelines/.../releases/.../rollouts/...
收到部署成功的通知後,請在已部署的應用程式上執行測試。
測試成功後,請呼叫 Cloud Deploy,自動將測試結果提交至下一個階段:
gcloud deploy releases promote RELEASE_NAME \ --delivery-pipeline=PIPELINE_NAME \ --region=REGION \ --annotations=KEY=VALUE,...
其中:
RELEASE_NAME
是版本名稱。必須提供這個值。
PIPELINE_NAME
是管理此版本的推送管道名稱。這是必要值。
REGION
是管道執行的地區。如果您已設定屬性
deploy/region
,可以省略這個旗標。KEY=VALUE,...
是一或多個以半形逗號分隔的鍵/值字串組合清單,可包含測試結果和其他測試資訊。範例如下:
gcloud deploy releases promote --annotations="from_target=test,status=stable"
推出作業上的註解無法變更,因此如果您新增狀態註解,之後就無法在同一推出作業中更新該狀態。
使用註解提供測試結果存取權
如果您有指向可存取測試結果的網址,可以使用 --annotations
標記,將該網址做為部署作業的註解。範例如下:
gcloud deploy releases promote --delivery-pipeline=my-demo-app-1 --region=us-central1 --project=my-demo-app-1-project --release=test-release-001 --annotations="test_results_url=https://example.com/results/my-demo-app-test-results-dev"
詳情請參閱「在 Cloud Deploy 中使用標籤和註解」。
整合第三方工作流程管理服務
Cloud Deploy 會將作業訊息發布至 Pub/Sub。您的工作流程管理工具可以訂閱這些 Pub/Sub 主題,並用於觸發特定工作流程。
核准
當需要核准才能推出時,clouddeploy-approvals
主題會通知您的系統。接著,您的外部工作流程系統就能發揮神奇功效,取得核准,然後呼叫 gcloud deploy rollouts approve
。
發出 rollouts approve
指令的帳戶必須具備預先定義的 IAM 角色 roles/clouddeploy.approver
。
如要設定外部核准工作流程,請按照下列步驟操作:
-
在該目標的定義中加入
requireApproval: true
。 如要使用訊息,請訂閱
clouddeploy-approvals
Pub/Sub 主題,並設定工作流程管理系統。當工作流程管理系統收到來自
clouddeploy-approvals
主題的訊息 (其中包含"Action": "Required"
) 時,就會啟動核准工作流程,並根據貴機構的要求進行設定。這則訊息也會參照要核准的推播內容,格式如下:
Resource: projects/.../locations/.../deliveryPipelines/.../releases/.../rollouts/...
核准工作流程的輸出內容是推出作業的核准或拒絕。
您的工作流程管理系統會以以下指令的形式,將核准或拒絕結果傳回至 Cloud Deploy:
核准指令如下:
gcloud deploy rollouts approve ROLLOUT \ --delivery-pipeline=PIPELINE_NAME \ --region=REGION \ --release=RELEASE_NAME
拒絕推出的指令如下:
gcloud deploy rollouts reject ROLLOUT \ --delivery-pipeline=PIPELINE_NAME \ --region=REGION \ --release=RELEASE_NAME
其中:
ROLLOUT
是要求核准的推出作業名稱。
PIPELINE_NAME
是管理應用程式部署作業的推送管道。
RELEASE_NAME
是與這項推出作業相關聯的版本名稱。
REGION
是推送管道執行的區域。
範例如下:
gcloud deploy rollouts approve test-rollout --delivery-pipeline=web-app --release=test-release --region=us-central1