本頁說明如何建立手動觸發條件,在來源存放區中建構程式碼。手動觸發程序可用於手動叫用建構作業,並在執行建構作業前,於叫用時覆寫定義的替代變數值。您也可以排定手動觸發條件,在特定時間自動執行。
如要瞭解如何使用 gcloud CLI 或 Cloud Build API 手動啟動建構作業,請參閱「手動啟動建構作業」。
事前準備
如果尚未啟用,請啟用 Cloud Build API。
啟用 API 時所需的角色
如要啟用 API,您必須具備
serviceusage.services.enable權限。如果您建立了專案,可能已透過「擁有者」角色 (roles/owner) 取得這項權限。否則,您可以透過「服務使用情形管理員」角色 (roles/serviceusage.serviceUsageAdmin) 取得這項權限。瞭解如何授予角色。
- 準備好原始碼。
手動觸發條件
手動觸發條件可讓您設定建構作業,只有在您對連結的存放區叫用觸發條件時,才會執行建構作業。舉例來說,您可以建立管道,將原始碼部署至測試或正式環境。您可能想自動化工作流程,但只想手動執行建構作業。您可以定義手動觸發條件來執行這項操作。
手動觸發條件可讓您透過下列方式手動叫用建構作業:
- 從指定分支版本或標記的代管存放區擷取原始碼。
- 使用不需要在每次執行建構作業時手動傳遞的替代項目,將建構作業參數化。
- 在叫用建構作業之前,於叫用時覆寫已定義的替代變數值。
如要從本機目前使用的目錄執行建構作業,而不是從代管存放區執行,或是想提交建構作業,但不想建立觸發條件,可以在目前使用的目錄中執行下列 gcloud 指令:
gcloud builds submit --config BUILD_CONFIG SOURCE_CODE
其中:
- BUILD_CONFIG 是建構設定檔的路徑。
- SOURCE_CODE 是路徑或網址原始碼。
如要進一步瞭解如何使用 gcloud 指令在本機目錄中手動啟動建構作業,請參閱「手動啟動建構作業」。
建立手動觸發條件
控制台
如要建立手動觸發條件,請按照下列步驟操作:
開啟「觸發條件」頁面:
從頁面頂端選取專案,然後按一下「開啟」。
按一下「建立觸發條件」。
輸入下列觸發條件設定:
- 名稱︰觸發條件的名稱。
區域:選取觸發條件的區域。
- 如果選取「global」(全球) 做為區域,Cloud Build 會使用預設集區執行建構作業。
- 如果您選取非全域區域,且與觸發條件相關聯的建構設定檔指定私人集區,Cloud Build 會使用該私人集區執行建構作業。在這種情況下,您在觸發條件中指定的區域必須與建立私人集區的區域相符。
- 如果您選取非全球區域,且與觸發條件相關聯的建構設定檔「未」指定私人集區,Cloud Build 會使用預設集區,在與觸發條件相同的區域中執行建構作業。
說明 (選用):觸發條件的說明。
「Event」(事件):選取「Manual invocation」(手動叫用),設定觸發條件,這樣一來,只有在手動叫用觸發條件時,才會執行建構作業。
來源:選取手動觸發時要建構的存放區。
存放區代別:選取「第 2 代」。
「分支」或「標記」:設定下列其中一項:
- 分支版本:設定觸發條件,以便在這個分支版本上建構。 您必須指定常值。系統不支援規則運算式。
- 標記:設定觸發條件,根據這個標記建構。您必須指定常值。不支援規則運算式。
「設定」:選取遠端存放區中的建構設定檔,或建立內嵌建構設定檔,以用於建構作業。
- 類型:選取要用於建構作業的設定類型。
- Cloud Build 設定檔 (YAML 或 JSON): 使用建構設定檔進行設定。
- Dockerfile:使用
Dockerfile進行設定。
位置:指定設定的位置。
- 存放區:如果設定檔位於遠端存放區,請提供建構設定檔、
Dockerfile目錄或建構套件目錄的位置。如果建構設定類型為Dockerfile或建構套件,您需要為產生的映像檔提供名稱,並視需要為建構作業設定逾時時間。提供Dockerfile或建構套件映像檔名稱後,您會看到建構作業執行的docker build或pack指令預覽畫面。 - 內嵌:如果您選取「Cloud Build 設定檔 (yaml 或 json)」做為設定選項,可以內嵌指定建構設定。點選「開啟編輯器」,在 Google Cloud 控制台中使用 YAML 或 JSON 語法編寫建構設定檔。按一下「完成」,儲存建構設定。
- 存放區:如果設定檔位於遠端存放區,請提供建構設定檔、
- 類型:選取要用於建構作業的設定類型。
按一下「建立」即可建立手動觸發條件。
gcloud
如要建立手動觸發條件,請按照下列步驟操作:
- 開啟終端機視窗。
執行下列
gcloud指令,在專案中建立自動建構觸發條件:gcloud builds triggers create manual \ --region=REGION \ --name=TRIGGER_NAME \ --repository=projects/PROJECT_ID/locations/REGION/connections/CONNECTION_NAME/repositories/REPO_NAME \ --branch=BRANCH_NAME \ --build-config=BUILD_CONFIG_FILE \ --service-account=SERVICE_ACCOUNT
其中:
REGION是觸發程序的區域。TRIGGER_NAME是觸發條件的名稱。PROJECT_ID是您的 Google Cloud 專案 ID。CONNECTION_NAME是主機連線的名稱。REPO_NAME是存放區的名稱。BRANCH_NAME是您的分支版本名稱。您也可以使用--tag指定標記,或使用--sha指定修訂版本 ID。BUILD_CONFIG_FILE是建構設定檔的路徑。您也可以使用--inline-config指定內建建構設定檔,或使用--dockerfile、--dockerfile-dir和dockerfile-image指定 Dockerfile。SERVICE_ACCOUNT是與服務帳戶相關聯的電子郵件地址。如未加入此旗標,系統會使用預設服務帳戶。
如需旗標的完整清單,請參閱gcloud手動建立觸發條件的參考資料。
執行手動觸發條件
控制台
如要使用 Google Cloud 控制台手動觸發,請按照下列步驟操作:
gcloud
如要使用 gcloud 指令列工具手動觸發,請執行下列指令:
gcloud builds triggers run TRIGGER_NAME \
--region=REGION \
--branch=BRANCH_NAME \
--substitutions=SUBSTITUTION_VAR=SUBSTITUTION_VALUE
其中:
TRIGGER_NAME是觸發條件的名稱。REGION是觸發條件的區域。BRANCH_NAME是您的分支版本名稱。您也可以使用--tag指定標記,或使用--sha指定修訂版本 ID。SUBSTITUTION_VAR(選用) 是替代值的變數名稱。SUBSTITUTION_VALUE(選用) 是與替代變數相關聯的值。
如要依排程執行手動觸發條件,請參閱「排定建構作業」。