範例:工作流程中的觸發 - Amazon CodeCatalyst

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

範例:工作流程中的觸發

下列範例說明如何在 Amazon CodeCatalyst 工作流程定義檔案中新增不同類型的觸發器。

關於觸發條件的詳細資訊,請參閱 使用觸發器啟動工作流程自動執行

範例:簡單的程式碼推送觸發器

下列範例顯示每當程式碼推送至來源儲存庫中的任何分支時,就會啟動工作流程執行的觸發程序。

啟動此觸發程序時, CodeCatalyst 會使用您要推送到的分支 (也就是目標分支) 中的檔案來啟動工作流程執行。

例如,如果您將提交推送至main,則會使用 workfow 定義檔案和其他來源檔案來 CodeCatalyst 啟動工作流程執行。main

另一個範例是,如果您將提交推送至feature-branch-123,則會使用 workfow 定義檔案和其他來源檔案 CodeCatalyst 啟動工作流程執行。feature-branch-123

Triggers: - Type: PUSH
注意

如果您希望工作流程只在您推送至時才開始執行main,請參閱示例:一個簡單的「推送到主」觸發器

示例:一個簡單的「推送到主」觸發器

下列範例顯示的觸發程序會在將程式碼推送至來源儲存庫中的分支 main (只有main分支) 時,啟動工作流程執行。

Triggers: - Type: PUSH Branches: - main

範例:簡單的提取要求觸發程序

下列範例顯示每當在來源儲存庫中建立或修訂提取要求時,就會啟動工作流程執行的觸發程序。

啟動此觸發程序時, CodeCatalyst 會使用工作流程定義檔案和您要中提取的分支 (也就是來源分支) 中的其他來源檔案來啟動工作流程執行。

例如,如果您使用名為的來源分支建立提取請求,feature-123且名為的目標分支建立提取請求main,則會使用 workfow 定義檔案和其他來源檔案來 CodeCatalyst 啟動工作流程執行。feature-123

Triggers: - Type: PULLREQUEST Events: - OPEN - REVISION

範例:一個簡單的排程觸發

下列範例顯示在每個星期一至星期五午夜 (UTC+0) 啟動工作流程執行的觸發程序。

啟動此觸發程序時, CodeCatalyst 會針對包含含有此觸發程序的工作流程定義檔案的來源儲存庫中的每個分支啟動單一工作流程執行。

例如,如果您的來源儲存庫、、、中有三個分支 main release-v1feature-123,並且每個分支都包含一個工作流程定義檔案,則會 CodeCatalyst 啟動三個工作流程執行:一個使用中的檔案main,另一個使用中的檔案release-v1,另一個使用中的檔案feature-123

Triggers: - Type: SCHEDULE Expression: "0 0 ? * MON-FRI *"

如需可在Expression屬性中使用的 cron 運算式的更多範例,請參閱Expression

範例:具有排程和分支的觸發器

下列範例顯示每天下午 6:15 (UTC+0) 啟動工作流程執行的觸發程序。

啟動此觸發器時,使用main分支中的檔案 CodeCatalyst 啟動工作流程執行,並為開頭的每個分支啟動其他執行release-

例如,如果您的來源儲存庫bugfix-2中有名為mainrelease-v1bugfix-1、、和的分支,則會 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分支上的檔案或src目錄中的任何filename.txt檔案進行變更時,就會啟動工作流程執行的觸發程序。

啟動此觸發器時, 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-app TestAction: instructions-for-test-the-app

Triggers代碼指示每當軟件開發人員創建一個提取請求(或修改一個)要求將其功能分支合併到分支時自動啟動工作流運行。main CodeCatalyst 使用來源分支 (即功能分支) 中的原始程式碼來啟動工作流程執行。

CD 工作流程的定義檔看起來會類似這樣:

Triggers: - Type: PUSH Branches: - main Actions: BuildAction: instructions-for-building-the-app DeployAction: instructions-for-deploying-the-app

Triggers代碼指示在合併發生時自動啟動工作流main程。 CodeCatalyst 使用分支中的原始程式碼啟動工作流程執main行。