每當有變更推送至建構原始碼時,建構觸發條件都會命令 Cloud Build 自動建構您的映像檔。您可以設定讓建構觸發條件在原始碼存放區發生任何變更時,或只有在變更符合特定條件時重新建構您的映像檔。
建構觸發條件可以協助您確認容器映像檔一律以其原始碼的最新版本為基礎。如要對發佈前的功能分支版本進行建構及測試,或者對產生容器映像檔的工作流程進行自動化處理,這也很有幫助。
本頁說明如何建立建構觸發條件。
事前準備
- 您需要 Cloud Source Repository、GitHub 或 Bitbucket 中的原始碼。
- 您需要
Dockerfile
或 Cloud Build 建構設定檔。
建立建構觸發條件
如要建立新的建構觸發條件:
在 Google Cloud Platform 主控台中開啟「Build Triggers」(建構觸發條件) 頁面。
選取您的專案並按一下 [開啟]。
按一下 [新增觸發條件]。
為您的建構原始碼選取下列其中一個主機存放區:
- Cloud 原始碼存放區
- Bitbucket
- GitHub
為了在 Git 存放區建構原始碼,Cloud Build 會執行存放區的淺複製。這表示只會在要建構的工作區中查看觸發建構的單次修訂版本。Cloud Build 不會查看其他任何分支版本或歷史記錄。這麼做的目的是為了提高效率,讓建構無須只是為了建構單次修訂版本,就花時間等待擷取完整存放區與歷史記錄。
如果您要在建構中包含更多存放區歷史記錄,請在您的建構設定檔中加入建構步驟以「取消淺複製」。例如:
steps: - name: gcr.io/cloud-builders/git args: ['fetch', '--unshallow'] ...
按一下 [繼續]。
從可用存放區清單中選取所需存放區,然後按一下 [Continue] (繼續)。
輸入下列觸發條件設定:
名稱:觸發條件的名稱。
觸發條件類型:您可以設定觸發條件在修訂特定「分支版本」或修訂版本包含特定「標記」時啟動建構。無論哪一種情況,您都可以指定要比對的分支版本或標記值的規則運算式。如要瞭解可接受的規則運算式語法,請參閱 RE2 語法。
包含的檔案 (選用):這些檔案發生變更時會觸發建構。您可以使用 glob 字串透過萬用字元指定多個檔案。可以使用的萬用字元包括 Go Match 支援的字元、
**
和替用字元。忽略的檔案 (選用):這些檔案發生變更時會觸發建構。您可以使用 glob 字串透過萬用字元指定多個檔案。可以使用的萬用字元包括 Go Match 支援的字元、
**
和替用字元。每次您將變更推送至原始碼時,Cloud Build 都會在您變更的檔案中尋找包含及忽略的檔案,藉以確認是否應觸發建構:
如果您將變更推送至現有分支版本的存放區,Cloud Build 會在您剛剛推送的修訂版本與之前將分支版本指向的修訂版本之間尋找變更過的檔案。
如果您將變更推送至新建立的分支版本或標記,Cloud Build 會將存放區中的所有檔案視為變更過的檔案。
如果您刪除分支版本或標記,Cloud Build 不會觸發建構。
建構設定:
Dockerfile
或建構設定檔 (位於遠端存放區),可用於啟動觸發條件的每個建構。如果您的建構設定要使用 Dockerfile,您需要指定 Dockerfile 目錄,並為產生的映像檔提供名稱。
提供 Dockerfile 與映像檔名稱之後,您會看見建構將會執行的
docker build
指令預覽以及觸發條件設定的摘要。按一下 [Create trigger] (建立觸發條件) 即可儲存建構觸發條件。如果您的建構設定要使用建構設定檔,您需要提供建構設定檔的位置。
設定位置之後,您會看見觸發條件的摘要。按一下 [Create trigger] (建立觸發條件) 即可儲存建構觸發條件。
測試建構觸發條件
如要手動測試建構觸發條件,請在觸發條件清單中的觸發條件項目上按一下 [Run trigger] (執行觸發條件)。
略過建構觸發條件
在某些情況下,您可能會想要變更原始碼,但不想觸發建構。例如,當您更新說明文件或設定檔時,可能並不想觸發建構。
在此類情境下,可以在修訂訊息中加入 [skip ci]
或 [ci skip]
,這樣就不會觸發建構。
如果您想要稍後在該修訂版本上執行建構,請使用 [Run trigger] (執行觸發條件) 按鈕。
後續步驟
- 瞭解如何在 Cloud Build 中手動啟動建構。