Cloud Build 觸發條件

Cloud Build 會使用建構觸發條件啟用 CI/CD 自動化功能。您可以設定觸發條件,以便監聽傳入的事件,例如新的提交內容是否已推送至存放區,或是是否已發出拉取要求,然後在收到新事件時自動執行建構作業。您也可以設定觸發條件,在原始碼存放區發生任何變更時,或只有在變更符合特定條件時建構程式碼。

本頁面概要說明各觸發條件類型,以及與觸發條件相關聯的功能。

存放區事件觸發條件

Cloud Build 可讓您在發生推送或提取要求等存放區事件時,自動執行建構作業。您可以將外部存放區 (例如 GitHub 或 Bitbucket 中的存放區) 連結至 Cloud Build,也可以在建構作業中使用 Cloud Source Repositories 中的程式碼。雖然您可以將任何來源存放區連結至 Cloud Build,但 Cloud Build 提供特定存放區事件觸發條件,可用於整合特定原始碼管理系統 (SCM)。本節將說明可用的存放區事件觸發條件。

GitHub 觸發條件

您可以建立 GitHub 觸發條件,自動執行建構作業,以回應存放區事件,例如推送或提取要求。您可以在 GitHub 和 Google Cloud 主控台上查看觸發事件的建構狀態。您也可以使用 Cloud Build GitHub 應用程式連結 GitHub 並建構程式碼。詳情請參閱「從 GitHub 建構存放區」。

GitHub Enterprise 觸發條件

您可以為 GitHub Enterprise 執行個體上代管的存放區建立觸發條件,包括在內部部署環境中代管的執行個體,且無法透過公開網際網路連線存取。您可以使用 GitHub Enterprise 觸發條件,針對 GitHub Enterprise 執行個體的推送或提取要求,執行建構作業。詳情請參閱「從 GitHub Enterprise 建構存放區」。

GitLab Enterprise Edition 觸發條件

您可以為 GitLab Enterprise 版執行個體 (包括託管在私人網路中的執行個體) 的存放區建立觸發事件。您可以使用 GitLab Enterprise Edition 觸發條件,針對與 GitLab Enterprise Edition 存放區相關聯的提交推送或提取要求,執行建構作業。如需更多資訊,請參閱「從 GitLab Enterprise Edition 建構存放區」。

Bitbucket Server 觸發事件

您可以為 Bitbucket Server 執行個體 (包括在內部部署環境中代管的執行個體) 中的存放區建立觸發條件。您可以透過多個主機連線,將 Bitbucket Server 存放區連結至 Cloud Build 多次。如要進一步瞭解如何建立觸發事件,以便在事件發生時執行建構作業,請參閱「透過 Bitbucket Server 建構存放區」一文。

Bitbucket Data Center 觸發條件

您可以為 Bitbucket 資料中心執行個體 (包括在內部部署環境中託管的執行個體) 建立觸發事件。您可以使用 Bitbucket 資料中心觸發條件,在發生事件時執行建構作業,例如提交推送或提取要求。詳情請參閱「從 Bitbucket Data Center 建構存放區」。

Bitbucket Cloud 觸發條件

您可以為 Bitbucket Cloud 中託管的存放區建立觸發條件。您可以使用 Bitbucket Cloud 觸發條件,在提交推送或提取要求等事件發生時執行建構作業。詳情請參閱「從 Bitbucket Cloud 建構存放區」。

手動觸發條件

您可以建立手動觸發條件,手動執行版本,並在執行版本前於叫用時覆寫定義的替換變數值。您也可以設定手動觸發條件,依時程表執行。詳情請參閱「手動建構來源存放區中的程式碼」。

Pub/Sub 觸發條件

您可以建立 Pub/Sub 觸發條件,以便在收到透過 Pub/Sub 發布的任何訊息時執行建構作業。舉例來說,您可以使用 Pub/Sub 觸發條件,在系統推送圖片至 Artifact Registry 時進行建構作業。在這種情況下,您可以設定觸發條件,只在推送的映像檔符合特定標記 (例如 prod) 時,才使用篩選器執行建構作業。此外,您可以設定 Pub/Sub 觸發條件,讓系統訂閱任何 Pub/Sub 主題。如需更多資訊,請參閱「自動執行建構作業,因應 Pub/Sub 事件」。

Webhook 觸發條件

您可以建立 Webhook 觸發條件,讓系統在收到 Webhook 時執行建構作業。您可以將傳送至自訂網址的 Webhook 事件,直接連結外部系統和外部原始碼管理系統 (SCM),例如 Bitbucket.com、Bitbucket Server 或 GitLab,以連結至 Cloud Build。建立 webhook 觸發條件時,您也可以在觸發條件中內嵌定義建構設定,以便控制觸發條件在建構期間複製哪些存放區,而非明確指定來源。如需更多資訊,請參閱「自動回應網址鉤子事件的建構作業」。此外,如要瞭解如何使用 webhook 觸發條件,從特定 SCM 建構存放區,請參閱「從 Bitbucket Server 建構存放區」、「從 Bitbucket Cloud 建構存放區」和「從 GitLab 建構存放區」。

Developer Connect 連結存放區的觸發條件

Developer Connect 可讓您使用標準化步驟和應用程式,將外部產品或非 Google 開發人員工具連結至 Google Cloud 。您可以為下列 SCM 設定觸發條件,從透過 Developer Connect 連結的存放區進行建構:

觸發功能

Cloud Build 觸發條件提供的功能,可讓您精細控管建構的執行方式。本節將討論與觸發事件相關的各種功能。

排定手動觸發條件

您可以排定手動觸發事件,讓系統根據預先定義的時間表自動執行建構作業。舉例來說,您可能會想設定排程觸發事件,以便每週六上午 6 點執行建構作業。如要排定建構作業,您可以建立手動觸發事件,並使用 Cloud Scheduler 叫用觸發事件。詳情請參閱「排定建構作業」。

篩選事件

Cloud Build 會使用一般運算語言 (CEL) 搭配變數 build,在Build 資源中列出的欄位存取與建構事件相關聯的欄位,例如觸發條件 ID、映像檔清單或替換值。您可以使用 filter 字串,透過Build 資源中列出的任何欄位,在建構設定檔中篩選建構事件。如需進一步瞭解,請參閱「使用 CEL 篩選建構事件

替代變數

您可以在建構設定檔中指定替換變數,以便在建構期間替換特定值。舉例來說,如果值在建構期間才會知曉,或是您想以不同變數重複使用現有的建構要求,則建議使用替換變數。Cloud Build 提供預設替換項目,可用於觸發條件叫用的建構作業,例如對應至觸發條件名稱或存放區名稱的變數。您也可以自行定義替換變數。詳情請參閱「取代變數值」。

Bash 參數擴展

您可以將 bash 參數擴展套用至替代變數值。Bash 參數擴充可讓您操作與現有變數相關聯的字串。舉例來說,您可以使用 bash 參數擴展功能將字母轉為大寫,或替換子字串。詳情請參閱「Bash 參數展開」。

酬載繫結

您可以使用酬載繫結,將觸發事件酬載的一部分儲存為替換變數。與酬載相關聯的變數稱為繫結,可供推送和拉取事件一併叫用的版本使用。您可以使用繫結來存取與建構相關的其他資料,例如提取要求的作者。詳情請參閱「酬載繫結」。

核准

您可以設定觸發條件,讓系統不立即執行建構作業,而是在獲得核准前將建構作業標示為待處理。如果擁有權限的使用者核准待處理的建構作業,系統就會開始建構。如果遭到拒絕,建構作業就不會開始。如要瞭解如何設定需要核准的觸發條件,請參閱「建構版本須經過核准」。

建構狀態通知

您可以設定 Cloud Build 通知器,讓系統在 預設 cloud-builds 主題或使用者定義的主題中,監聽 Pub/Sub 的建構事件更新。通知器也可以篩選主題收到的訊息,並將訊息傳送至已連結的服務。Cloud Build 會在 cloud-build-notifiers 存放區中提供及維護可部署的通知器映像檔。您可以使用 Cloud Build 通知器 (例如 BigQueryHTTPSlackSMTP) 設定通知,也可以自行建立通知器

後續步驟