Cloud Build 可讓您設定觸發條件,不立即執行建構作業,而是將建構作業標示為待處理,直到獲得核准為止。如果有權限的使用者核准待處理的建構作業,系統就會開始建構。如果遭拒,系統就不會開始建構。
本頁說明如何手動核准或拒絕建構。如要瞭解如何設定需要核准的觸發條件,請參閱「建立建構觸發條件」一文。
事前準備
-
Enable the Cloud Build API.
安裝 Google Cloud CLI。
如果尚未建立,請建立需要核准的建構觸發事件。
授予權限
如果使用者具備 Cloud Build 編輯者角色,則有權更新觸發條件,要求或不要求核准。如要進一步瞭解 Cloud Build 權限,請參閱「IAM 和權限」一文。如要授予使用者核准專案內建構作業的權限,使用者必須具備 Cloud Build 核准者角色。
如要新增 Cloud Build 核准者角色,請按照下列步驟操作:
在 Google Cloud 控制台中開啟「IAM」頁面。
按一下「授予存取權」。
畫面上會顯示「授予存取權」面板。
在「Add principals」(新增主體) 部分,新增使用者,授予他們在專案中核准待處理建構作業的權限。
您必須在這個部分新增一或多個主體。如果您將自己新增為主要使用者,請注意,如果觸發事件需要經過核准,您仍必須手動核准待處理的版本。
在「指派角色」部分,依序選取「Cloud Build」 >「Cloud Build 核准者」。
您指定的使用者現在有權核准或拒絕待處理的建構作業。
核准建構作業
主控台
如要在 Google Cloud 控制台中核准待處理版本:
在 Google Cloud 控制台中開啟「Cloud Build Dashboard」頁面。
如果您有待核准的版本,頁面頂端會顯示訊息,內含待核准的版本數量。按一下訊息右側的「View Builds」,即可查看待您核准的版本清單。
找出要核准的版本,然後勾選旁邊的核取方塊。您可以選取要核准的多個版本,也可以選取要核准的單一版本。
按一下頁面頂端的「核准」,核准所選的版本。
在建構作業開始前,您會看到「Approve build」對話方塊。您可以在對話方塊中新增選用訊息和網址,以便在建構作業通過核准時顯示。如要加入網址,請按一下「顯示其他選項」,然後輸入網址。
在對話方塊中,按一下「核准」核准建構作業。
您核准後,系統就會立即開始建構。如果機構政策 (constraints/cloudbuild.allowedIntegrations
) 拒絕存取已連結的存放區,系統會以這項政策覆寫核准。詳情請參閱「根據機構政策封鎖版本」。
gcloud
如要使用 gcloud commands
核准待處理的建構作業,請在終端機視窗中執行下列指令:
gcloud builds approve BUILD_ID \
--project=PROJECT_ID \
--url=URL \
--comment=COMMENT
請將上述指令中的預留位置值替換為以下值:
BUILD_ID
是您要核准的版本 ID。PROJECT_ID
是您的專案 ID。- [選用]
URL
是包含核准資訊的網址,例如 JIRA 支援單的連結。 - [選用]
COMMENT
是您要在建構作業獲得核准時顯示的訊息。
您核准後,系統就會立即開始建構。如果設定了機構政策,以便定義允許整合的構建作業 (constraints/cloudbuild.allowedIntegrations
),則這項政策會覆寫核准。詳情請參閱「將機構政策套用至建構觸發條件」。
拒絕建構作業
主控台
如何在 Google Cloud 控制台中拒絕待處理版本:
在 Google Cloud 控制台中開啟「Cloud Build Dashboard」頁面。
如果您有待核准的版本,頁面頂端會顯示訊息,內含待核准的版本數量。按一下訊息右側的「View Builds」,即可查看待您核准的版本清單。
您可以選取要拒絕的多個版本,也可以選取要拒絕的個別版本。找出要拒絕的版本,然後勾選旁邊的核取方塊。
按一下頁面頂端的「拒絕」,即可拒絕建構。
如果您拒絕建構作業,系統就不會啟動建構作業。
gcloud
如要使用 gcloud commands
拒絕待處理的建構作業,請在終端機視窗中執行下列指令:
gcloud builds reject BUILD_ID \
--project=PROJECT_ID \
--url=URL \
--comment=COMMENT
請將上述指令中的預留位置值替換為以下值:
BUILD_ID
是您要拒絕的版本 ID。PROJECT_ID
是您的專案 ID。- [選用]
URL
是包含拒絕原因資訊的網址,例如 JIRA 支援單的連結。 - [選用]
COMMENT
是您要在建構作業遭拒時顯示的訊息。
如果您拒絕建構作業,系統就不會啟動建構作業。
接收等待核准的版本通知
您可以使用 Cloud Build 通知器,透過 Cloud Build 維護的通知器 (例如 Slack 或 SMTP 伺服器) 接收有關待處理建構作業的通知,或是自行建立通知器。
如要設定通知,請按照下列步驟操作:
請按照下列任一頁面的操作說明,設定所需服務的通知:
使用上述任一頁面設定通知時,您必須設定通知器,以便篩除狀態為「PENDING」的版本。系統會傳送等待核准的版本通知。在以下 SMTP 通知器設定檔範例中,篩選欄位會使用一般運算語言 (CEL) 篩選狀態為「待處理」的建構事件:
apiVersion: cloud-build-notifiers/v1 kind: SMTPNotifier metadata: name: example-smtp-notifier spec: notification: filter: build.status == Build.Status.PENDING delivery: server: example.gmail.com port: 0000 sender: sender@example.com ...
如需完整範例,請參閱 SMTP 通知器的通知器設定檔。
如要部署通知器,請在終端機中執行
gcloud run
指令。以下範例說明如何使用 Cloud Run 部署 SMTP 通知器。gcloud run deploy example.gmail.com \ --image=us-east1-docker.pkg.dev/gcb-release/cloud-build-notifiers/smtp:latest \ --update-env-vars=CONFIG_PATH=smtp.yaml, PROJECT_ID=my-project
您現在應該會收到服務的待處理版本通知。
後續步驟
- 瞭解如何建立及管理自動建構觸發條件。
- 瞭解如何查看自動建構觸發條件的建構結果