取得核准時控管建構作業

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

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

事前準備

  • Enable the Cloud Build API.

    Enable the API

  • 安裝 Google Cloud CLI

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

授予權限

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

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

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

    開啟 IAM 頁面

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

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

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

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

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

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

核准建構作業

主控台

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

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

    開啟 Cloud Build 資訊主頁頁面

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

  3. 勾選要核准的建構版本。 您可以選取多個建構版本來核准,也可以選取單一建構版本來核准。

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

  5. 建構作業開始前,系統會顯示「核准建構作業」對話方塊。 在對話方塊中,您可以新增選用訊息和網址,這些內容會在建構作業通過核准時顯示。如要加入網址,請按一下「顯示其他選項」並輸入網址。

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

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

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

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

  2. 使用上述任一頁面設定通知時,請務必設定通知程式,篩選出狀態為「PENDING」的建構作業。系統會傳送待核准版本的通知。 在下列 SMTP 通知程式設定檔範例中,篩選器欄位使用一般運算式語言 (CEL) 篩選狀態為「PENDING」的建構事件:

    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
    

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

後續步驟