自 2025 年 11 月 7 日起,Amazon CodeCatalyst 將不再向新客戶開放。如果您想要使用 服務,請在 2025 年 11 月 7 日之前註冊。如需詳細資訊,請參閱如何從 CodeCatalyst 遷移。
本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
範例:工作流程中的觸發條件
下列範例示範如何在 Amazon CodeCatalyst 工作流程定義檔案中新增不同類型的觸發。
關於觸發條件的詳細資訊,請參閱 使用觸發程序自動啟動工作流程執行。
主題
範例:簡單的程式碼推送觸發
下列範例顯示觸發程序,每當程式碼推送到來源儲存庫中的任何分支時,就會啟動工作流程執行。
啟用此觸發條件時,CodeCatalyst 會使用您推送到的分支 (即目的地分支) 中的檔案啟動工作流程執行。
例如,如果您將遞交推送至 main,CodeCatalyst 會使用 Workfow 定義檔案和 上的其他來源檔案啟動工作流程執行main。
另一個範例是,如果您將遞交推送到 feature-branch-123,CodeCatalyst 會使用 Workfow 定義檔案和 上的其他來源檔案啟動工作流程執行feature-branch-123。
Triggers: - Type: PUSH
注意
如果您希望工作流程執行只有在您推送至 時才會啟動main,請參閱 範例:簡單的「推送至主要」觸發。
範例:簡單的「推送至主要」觸發
下列範例顯示觸發程序,會在程式碼推送至來源儲存庫中的main分支時啟動工作流程執行,且只會啟動main分支。
Triggers: - Type: PUSH Branches: - main
範例:簡易提取請求觸發
下列範例顯示觸發程序,會在來源儲存庫中建立或修改提取請求時啟動工作流程執行。
啟用此觸發時,CodeCatalyst 會使用工作流程定義檔案和您從中提取的分支 (即來源分支) 中的其他來源檔案啟動工作流程執行。
例如,如果您使用名為 的來源分支feature-123和名為 的目的地分支建立提取請求main,CodeCatalyst 會使用 Workfow 定義檔案和 上的其他來源檔案啟動工作流程執行feature-123。
Triggers: - Type: PULLREQUEST Events: - OPEN - REVISION
範例:簡單的排程觸發
下列範例顯示觸發程序,會在每週一到週五的午夜 (UTC+0) 啟動工作流程執行。
啟用此觸發時,CodeCatalyst 會針對來源儲存庫中的每個分支啟動單一工作流程執行,其中包含具有此觸發的工作流程定義檔案。
例如,如果您的來源儲存庫中有三個分支,main、release-v1、feature-123,且每個分支都包含一個工作流程定義檔案,其觸發條件如下,則 CodeCatalyst 會啟動三個工作流程執行:一個使用 中的檔案main,另一個使用 中的檔案release-v1,另一個使用 中的檔案feature-123。
Triggers: - Type: SCHEDULE Expression: "0 0 ? * MON-FRI *"
如需您可以在 Expression 屬性中使用的 Cron 表達式範例,請參閱 Expression。
範例:具有排程和分支的觸發
下列範例顯示每天下午 6:15 (UTC+0) 啟動工作流程執行的觸發。
啟用此觸發時,CodeCatalyst 會使用main分支中的檔案啟動工作流程執行,並針對以 開頭的每個分支啟動額外的執行release-。
例如,如果您的來源儲存庫bugfix-2中有名為 main、bugfix-1、 release-v1和 的分支,CodeCatalyst 會啟動兩個工作流程執行:一個使用 中的檔案main,另一個使用 中的檔案release-v1。它不會啟動 bugfix-1和 bugfix-1分支的工作流程執行。
Triggers: - Type: SCHEDULE Expression: "15 18 * * ? *" Branches: - main - release\-.*
如需您可以在 Expression 屬性中使用的 Cron 表達式範例,請參閱 Expression。
範例:具有排程、推送和分支的觸發
下列範例顯示觸發,每天在午夜 (UTC+0) 開始工作流程執行,以及每當程式碼推送到main分支時。
在此範例中:
-
工作流程執行會在每天午夜開始。工作流程執行使用
main分支中的工作流程定義檔案和其他來源檔案。 -
每當您將遞交推送到
main分支時,工作流程執行也會開始。工作流程執行會使用工作流程定義檔案和目的地分支 () 中的其他來源檔案main。
Triggers: - Type: SCHEDULE Expression: "0 0 * * ? *" Branches: - main - Type: PUSH Branches: - main
如需您可以在 Expression 屬性中使用的 Cron 表達式範例,請參閱 Expression。
範例:具有提取和分支的觸發
下列範例顯示觸發程序,會在有人開啟或修改具有稱為 之目的地分支的提取請求時啟動工作流程執行main。雖然Triggers組態中指定的分支是 main,但工作流程執行將使用工作流程定義檔案和來源分支 (您正在提取的分支) 中的其他來源檔案。
Triggers: - Type: PULLREQUEST Branches: - main Events: - OPEN - REVISION
範例:具有提取、分支和 'CLOSED' 事件的觸發
下列範例顯示觸發程序,會在以 開頭的分支上關閉提取請求時啟動工作流程執行main。
在此範例中:
-
當您以開頭為 的目的地分支關閉提取請求時
main,工作流程執行會使用工作流程定義檔案和 (現在已關閉) 來源分支中的其他來源檔案自動啟動。 -
如果您已將來源儲存庫設定為在提取請求合併後自動刪除分支,則這些分支將永遠無法進入
CLOSED狀態。這表示合併的分支不會啟用提取請求CLOSED觸發。在此案例中啟用CLOSED觸發的唯一方法是關閉提取請求,而不合併。
Triggers: - Type: PULLREQUEST Branches: - main.* Events: - CLOSED
範例:具有推送、分支和檔案的觸發
下列範例顯示觸發程序,會在對 main 分支上的 filename.txt 檔案或 src目錄中的任何檔案進行變更時啟動工作流程執行。
啟用此觸發時,CodeCatalyst 會使用工作流程定義檔案和main分支中的其他來源檔案啟動工作流程執行。
Triggers: - Type: PUSH Branches: - main FilesChanged: - filename.txt - src\/.*
範例:手動觸發
若要設定手動觸發,請省略工作流程定義檔案中的 Triggers區段。如果沒有本節,使用者必須選擇 CodeCatalyst 主控台中的執行按鈕,以手動啟動工作流程。如需詳細資訊,請參閱手動啟動工作流程執行。
範例:CI/CD 多工作流程設定中的觸發
此範例說明如何在想要使用單獨的 Amazon CodeCatalyst 工作流程進行持續整合 (CI) 和持續部署 (CD) 時設定觸發。
在此案例中,您會設定兩個工作流程:
-
CI 工作流程 – 此工作流程會在建立或修改提取請求時建置和測試您的應用程式。
-
CD 工作流程 – 此工作流程會在提取請求合併時建置和部署您的應用程式。
CI 工作流程的定義檔案如下所示:
Triggers: - Type: PULLREQUEST Branches: - main Events: - OPEN - REVISION Actions: BuildAction:instructions-for-building-the-appTestAction:instructions-for-test-the-app
Triggers 程式碼指出,每當軟體開發人員建立提取請求 (或修改請求),要求將其功能分支合併到main分支時,就會自動啟動工作流程執行。CodeCatalyst 會使用來源分支 (即功能分支) 中的來源碼啟動工作流程執行。
CD 工作流程的定義檔案看起來類似:
Triggers: - Type: PUSH Branches: - main Actions: BuildAction:instructions-for-building-the-appDeployAction:instructions-for-deploying-the-app
Triggers 程式碼指出 會在合併到 main 時自動啟動工作流程。CodeCatalyst 會使用main分支中的原始程式碼啟動工作流程執行。