取得核准時控管建構作業

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

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

事前準備

  • 如果尚未啟用,請啟用 Cloud Build API。

    啟用 API 時所需的角色

    如要啟用 API,您必須具備 serviceusage.services.enable 權限。如果您建立了專案,可能已透過「擁有者」角色 (roles/owner) 取得這項權限。否則,您可以透過「服務使用情形管理員」角色 (roles/serviceusage.serviceUsageAdmin) 取得這項權限。瞭解如何授予角色。

    啟用 API

  • 安裝 Google Cloud CLI。

  • 如果尚未建立自動建構觸發條件,請建立自動建構觸發條件,並設定為需要核准。

授予權限

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

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

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

    開啟 IAM 頁面

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

    系統會顯示「授予存取權」面板。

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

    您必須在這個部分新增一或多個主體。如果您將自己新增為負責人,請注意,如果觸發條件受到核准限制,您仍須手動核准待處理的建構作業。

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

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

核准建構作業

控制台

如要在 Google Cloud 控制台核准待處理的建構作業,請按照下列步驟操作:

  1. 在 Google Cloud 控制台中開啟「Cloud Build Dashboard」(Cloud Build 資訊主頁) 頁面。

    開啟 Cloud Build 資訊主頁頁面

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

  3. 勾選要核准的建構版本核取方塊。 您可以選取多個要核准的版本,或個別核准一個版本。

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

  5. 建構作業開始前,系統會顯示「核准建構作業」對話方塊。 在對話方塊中,您可以視需要新增訊息和網址,建構作業取得核准時就會顯示。如要加入網址,請按一下「顯示其他選項」,然後輸入網址。

  6. 在對話方塊中,按一下「核准」核准版本。

核准後,系統會立即開始建構。如果組織政策 (constraints/cloudbuild.allowedIntegrations) 拒絕存取已連結的存放區,政策就會覆寫核准。詳情請參閱「Gate 建構在組織政策上」。

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 資訊主頁) 頁面。

    開啟 Cloud Build 資訊主頁頁面

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

  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 維護的通知程式 (例如 Slack 或 SMTP 伺服器) 接收待處理建構作業的通知,也可以建立自己的通知程式。

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

  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
    

現在,您應該會收到服務待處理建構作業的通知。

後續步驟