取得核准時控管建構作業

Cloud Build 可讓您設定觸發條件,不立即執行建構作業,而是將建構作業標示為待處理,直到獲得核准為止。如果有權限的使用者核准待處理的建構作業,系統就會開始建構。如果遭拒,系統就不會開始建構。

本頁說明如何手動核准或拒絕建構。如要瞭解如何設定需要核准的觸發條件,請參閱「建立建構觸發條件」一文。

事前準備

  • Enable the Cloud Build API.

    Enable the API

授予權限

如果使用者具備 Cloud Build 編輯者角色,則有權更新觸發條件,要求或不要求核准。如要進一步瞭解 Cloud Build 權限,請參閱「IAM 和權限」一文。如要授予使用者核准專案內建構作業的權限,使用者必須具備 Cloud Build 核准者角色。

如要新增 Cloud Build 核准者角色,請按照下列步驟操作:

  1. 在 Google Cloud 控制台中開啟「IAM」頁面。

    開啟 IAM 頁面

  2. 按一下「授予存取權」

    畫面上會顯示「授予存取權」面板。

  3. 在「Add principals」(新增主體) 部分,新增使用者,授予他們在專案中核准待處理建構作業的權限。

    必須在這個部分新增一或多個主體。如果您將自己新增為主要使用者,請注意,如果觸發事件需要經過核准,您仍必須手動核准待處理的版本。

  4. 在「指派角色」部分,依序選取「Cloud Build」 >「Cloud Build 核准者」

您指定的使用者現在有權核准或拒絕待處理的建構作業。

核准建構作業

主控台

如要在 Google Cloud 控制台中核准待處理版本:

  1. 在 Google Cloud 控制台中開啟「Cloud Build Dashboard」頁面。

    開啟 Cloud Build 資訊主頁

  2. 如果您有待核准的版本,頁面頂端會顯示訊息,內含待核准的版本數量。按一下訊息右側的「View Builds」,即可查看待您核准的版本清單。

  3. 找出要核准的版本,然後勾選旁邊的核取方塊。您可以選取要核准的多個版本,也可以選取要核准的單一版本。

  4. 按一下頁面頂端的「核准」,核准所選的版本。

  5. 在建構作業開始前,您會看到「Approve build」對話方塊。您可以在對話方塊中新增選用訊息和網址,以便在建構作業通過核准時顯示。如要加入網址,請按一下「顯示其他選項」,然後輸入網址。

  6. 在對話方塊中,按一下「核准」核准建構作業。

您核准後,系統就會立即開始建構。如果機構政策 (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 控制台中拒絕待處理版本:

  1. 在 Google Cloud 控制台中開啟「Cloud Build Dashboard」頁面。

    開啟 Cloud Build 資訊主頁

  2. 如果您有待核准的版本,頁面頂端會顯示訊息,內含待核准的版本數量。按一下訊息右側的「View Builds」,即可查看待您核准的版本清單。

  3. 您可以選取要拒絕的多個版本,也可以選取要拒絕的個別版本。找出要拒絕的版本,然後勾選旁邊的核取方塊。

  4. 按一下頁面頂端的「拒絕」,即可拒絕建構。

如果您拒絕建構作業,系統就不會啟動建構作業。

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 維護的通知器 (例如 SlackSMTP 伺服器) 接收有關待處理建構作業的通知,或是自行建立通知器

如要設定通知,請按照下列步驟操作:

  1. 請按照下列任一頁面的操作說明,設定所需服務的通知:

  2. 使用上述任一頁面設定通知時,您必須設定通知器,以便篩除狀態為「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 通知器的通知器設定檔

  3. 如要部署通知器,請在終端機中執行 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
    

您現在應該會收到服務的待處理版本通知。

後續步驟