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 Edition 執行個體 (包括私人網路中託管的執行個體) 的存放區建立觸發程序。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 建構存放區」。
Secure Source Manager 觸發條件
您可以為 Secure Source Manager 中代管的存放區建立觸發條件。Secure Source Manager 觸發條件可用於執行建構作業,以回應提交推送或提取要求等事件。詳情請參閱「在 Secure Source Manager 中建立觸發條件檔案」。
手動觸發條件
您可以建立手動觸發條件,手動執行建構作業,並在叫用時覆寫定義的替代變數值,然後再執行建構作業。您也可以設定手動觸發條件,依時間表執行。詳情請參閱「在來源存放區中手動建構程式碼」。
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 事件」。此外,如要瞭解如何使用 Webhook 觸發條件從特定 SCM 建構存放區,請參閱「從 Bitbucket Server 建構存放區」、「從 Bitbucket Cloud 建構存放區」和「從 GitLab 建構存放區」。
Developer Connect 連結存放區的觸發條件
Developer Connect 可讓您透過標準化步驟和應用程式,將外部產品或非 Google 開發人員工具連結至 Google Cloud 。您可以設定觸發條件,從透過 Developer Connect 連線的存放區建構下列 SCM:
- Bitbucket Cloud
- Bitbucket Data Center
- Bitbucket Server
- GitHub
- GitHub Enterprise
- GitLab
- Gitlab Enterprise 版本
觸發功能
Cloud Build 觸發條件提供多種功能,可讓您精細控管建構作業的執行方式。本節將討論與觸發條件相關的各種功能。
排定手動觸發條件
您可以排定手動觸發時間,讓系統按照預先定義的排程自動執行建構作業。舉例來說,您可能想設定排程觸發條件,在每週六上午 6 點執行建構作業。如要排定建構作業,您可以建立手動觸發條件,並使用 Cloud Scheduler 叫用該觸發條件。詳情請參閱「排定建構作業」。
篩選事件
Cloud Build 會在建構資源中列出的欄位上,使用一般運算式語言 (CEL) 和變數 build,存取與建構事件相關聯的欄位,例如觸發條件 ID、映像檔清單或替換值。您可以使用 filter 字串,透過建構資源中列出的任何欄位,篩選建構設定檔中的建構事件。詳情請參閱「使用 CEL 篩選建構事件」。
替代變數
您可以在建構設定檔中指定替代變數,在建構時間替代特定值。舉例來說,如果值在建構時間之前仍未知,或者您想以不同變數重複使用現有建構要求,則可能需要使用替代變數。Cloud Build 提供預設的替代項目,可用於觸發條件叫用的建構作業,例如對應至觸發條件名稱或存放區名稱的變數。您也可以定義自己的替代變數。 詳情請參閱「替換變數值」。
Bash 參數擴展
您可以將 bash 參數擴充套用至替代變數值。Bash 參數擴充功能可讓您操控與現有變數相關聯的字串。舉例來說,您可以使用 bash 參數擴展功能將字母大寫,或替換子字串。詳情請參閱「Bash 參數擴充」。
酬載繫結
您可以使用酬載繫結,將觸發事件的酬載部分內容儲存為替代變數。與酬載相關聯的變數稱為繫結,可供推送和提取事件叫用的建構作業使用。您可以使用繫結存取與建構作業相關的其他資料,例如提取要求的作者。詳情請參閱「酬載繫結」。
核准
您可以設定觸發條件,讓系統不要立即執行建構作業,而是將建構作業標示為待處理,直到獲得核准為止。如果具備權限的使用者核准待處理的建構作業,建構作業就會開始。如果遭到拒絕,系統就不會開始建構。如要瞭解如何設定需要核准的觸發條件,請參閱「根據核准狀態控管建構作業」。
建立狀態通知
您可以設定 Cloud Build Notifier,從 Pub/Sub 的預設 cloud-builds 主題或使用者定義的主題,監聽建構事件更新。通知程式也可以篩選主題收到的訊息,並將訊息傳送至已連結的服務。Cloud Build 會在 cloud-build-notifiers 存放區中提供及維護可部署的通知程式映像檔。您可以使用 Cloud Build 通知程式 (例如 BigQuery、HTTP、Slack 或 SMTP) 設定通知,也可以建立自己的通知程式。
後續步驟
- 瞭解如何建立及管理自動建構觸發條件。