新增觸發器至工作流 - Amazon CodeCatalyst

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

新增觸發器至工作流

使用以下說明將推送、拉動或排程觸發器新增至您的 Amazon CodeCatalyst 工作流程。

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

Visual
若要新增觸發器 (視覺化編輯器)
  1. 請在以下位置開啟 CodeCatalyst 主控台。 https://codecatalyst.aws/

  2. 選擇您的專案。

  3. 在瀏覽窗格中,選擇 CI/CD,然後選擇 [工作流程]。

  4. 選擇工作流程的名稱。您可以依定義工作流程的來源儲存庫或分支名稱進行篩選,或依工作流程名稱或狀態進行篩選。

  5. 選擇編輯

  6. 選擇 [視覺]。

  7. 在工作流程圖表中,選擇「來觸發程式」方塊。

  8. 在設定窗格中,選擇 [新增觸發器]。

  9. 在「新增觸發器」對話方塊中,在欄位中提供資訊,如下所示。

    觸發類型

    指定觸發器的類型。您可以使用下列其中一個值:

    • 推送 (視覺化編輯器) 或 PUSH (YAML編輯器)

      推送觸發程序會在將變更推送至來源儲存庫時啟動工作流程執行。工作流程執行將使用您要推送到的分支 (也就是目標分支) 中的檔案。

    • 提取請求(可視化編輯器)或PULLREQUEST(YAML編輯器)

      在來源儲存庫中開啟、更新或關閉提取要求時,提取要求觸發程序會啟動工作流程執行。工作流程執行將使用您要中提取的分支中的檔案 (也就是來源分支)。

    • 排程 (視覺化編輯器) 或 SCHEDULE (YAML編輯器)

      排程觸發程序會根據您指定的 cron 運算式所定義的排程開始工作流程執行。將使用分支的檔案為來源儲存庫中的每個分支啟動個別的工作流程執行。若要限制觸發程序啟動的分支,請使用「分支」欄位 (視覺化編輯器) 或Branches屬性 (YAML編輯器))。

      設定排程觸發器時,請遵循下列準則:

      • 每個工作流程僅使用一個排程觸發器。

      • 如果您已在 CodeCatalyst 空間中定義了多個工作流程,我們建議您排程不超過 10 個工作流程以同時啟動。

      • 確保在運行之間有足夠的時間配置觸發器的 cron 表達式。如需詳細資訊,請參閱 Expression

    如需範例,請參閱 範例:工作流程中的觸發

    提取請求的事件

    只有在您選取提取要求觸發程式類型時,才會顯示此欄位。

    指定將啟動工作流程執行的提取要求事件類型。以下是有效值:

    • 創建拉請求(可視化編輯器)或OPEN(YAML編輯器)

      建立提取請求時,會啟動工作流程執行。

    • 拉請求已關閉(可視化編輯器)或CLOSED(YAML編輯器)

      當提取請求關閉時,會啟動工作流程執行。該CLOSED事件的行為很棘手,並且最好通過一個示例來理解。如需詳細資訊,請參閱範例:具有拉取、分支和 'CLOSED' 事件的觸發程序

    • 新的修訂做了拉請求(可視化編輯器)或REVISION(YAML編輯器)

      工作流程執行會在建立提取請求的修訂時啟動。建立提取請求時會建立第一個修訂版本。之後,每當有人將新提交推送到提取請求中指定的源分支時,都會創建一個新的修訂版本。如果您將REVISION事件包含在提取要求觸發程序中,您可以省略該OPEN事件,因為REVISION這是的OPEN超集合。

    您可以在同一個提取請求觸發程序中指定多個事件。

    如需範例,請參閱 範例:工作流程中的觸發

    排程

    只有在您選取「排程」觸發類型時,才會顯示此欄位。

    指定描述何時執行排程工作流程執行的 cron 運算式。

    中的 Cron 運算式 CodeCatalyst 使用下列六個欄位語法,其中每個欄位都以空格分隔:

    minutes hours days-of-month month days-of-week year

    cron 表達式的例子

    分鐘 小時 月份中的天數 星期中的天數 意義

    0

    0

    ?

    *

    MON-FRI

    *

    在每個星期一至星期五的午夜 (UTC+0) 執行工作流程。

    0

    2

    *

    *

    ?

    *

    每天凌晨 2:00 (UTC+0) 執行工作流程。

    15

    22

    *

    *

    ?

    *

    在每天晚上 10:15 (UTC+0) 執行工作流程。

    0/30

    22-2

    ?

    *

    SAT-SUN

    *

    在開始日的晚上 10:00 至次日凌晨 2:00 之間,每隔 30 分鐘執行一個工作流程 (UTC+0)。

    45

    13

    L

    *

    ?

    2023-2027

    在 2023 年到 2027 年之間的月份最後一天下午 1:45 (UTC+0) 執行工作流程。

    在中指定 cron 運算式時 CodeCatalyst,請確定遵循下列準則:

    • 為每個SCHEDULE觸發器指定一個 cron 運算式。

    • 在編輯器中以雙引號 (") 括住 cron 運算式。YAML

    • 以國際標準時間 (UTC) 指定時間。不支援其他時區。

    • 設定執行間隔至少 30 分鐘。不支援較快的節奏。

    • 指定 days-of-monthdays-of-week 字段,但不能兩者兼而有之。如果您在其中一個欄位中指定值或星號 (*),則必須在另一個欄位中使用問號 (?)。星號表示「全部」,問號表示「任何」。

    如需 Cron 運算式的更多範例和萬用字元 (例如?、和L) 的相關資訊*,請參閱 Amazon EventBridge 使用者指南中的 Cron 運算式參考。Cron 表達式 EventBridge 和 CodeCatalyst 工作方式完全相同。

    如需排程觸發器的範例,請參閱範例:工作流程中的觸發

    分支和分支模式

    (選用)

    指定觸發程式監視的來源儲存庫中的分支,以便知道何時開始工作流程執行。您可以使用正則表達式模式來定義分支名稱。例如,使用main.*來比對以開頭的所有分支main

    根據觸發器類型,要指定的分支會有所不同:

    • 對於推送觸發器,請指定要推送的分支,也就是目標分支。每個匹配的分支將使用匹配分支中的文件啟動一個工作流程運行。

      範例: main.*, mainline

    • 對於提取要求觸發程序,請指定您要推送的分支,也就是目的地分支。每個匹配的分支將使用工作流程定義文件和源文件(而不是匹配的分支)啟動一個工作流程運行。

      範例:main.*,mainline, v1\-.* (符合開頭為的分支v1-)

    • 對於排程觸發器,請指定包含您要排程執行使用之檔案的分支。每個匹配的分支將使用工作流程定義文件和匹配分支中的源文件啟動一個工作流程運行。

      範例: main.*, version\-1\.0

    注意

    如果您指定分支,則觸發程序會監視來源儲存庫中的所有分支,並使用下列項目中的工作流程定義檔案和來源檔案啟動工作流程執行:

    如需有關分支和觸發程序的更多資訊,請參閱觸發器和分支的使用指南

    如需更多範例,請參閱範例:工作流程中的觸發

    檔案已變更

    只有在選取「推送」或「提取」要求觸發程式類型時,才會顯示此欄位

    指定觸發程式監視的來源儲存庫中的檔案或資料夾,以便知道何時開始執行工作流程。您可以使用規則運算式來比對檔案名稱或路徑。

    如需範例,請參閱 範例:工作流程中的觸發

  10. (選擇性) 選擇「驗證」,在確認之前驗證工作流程的程YAML式碼。

  11. 選擇「確認」,輸入確認訊息,然後再次選擇「確認」。

YAML
若要新增觸發YAML器 (編輯器)
  1. 請在以下位置開啟 CodeCatalyst 主控台。 https://codecatalyst.aws/

  2. 選擇您的專案。

  3. 在瀏覽窗格中,選擇 CI/CD,然後選擇 [工作流程]。

  4. 選擇工作流程的名稱。您可以依定義工作流程的來源儲存庫或分支名稱進行篩選,或依工作流程名稱或狀態進行篩選。

  5. 選擇編輯

  6. 選擇YAML

  7. 使用下列範例做為指南,新增Triggers區段和基礎屬性。如需詳細資訊,請參閱《Triggers》中的 工作流YAML定義

    代碼推送觸發器可能如下所示:

    Triggers: - Type: PUSH Branches: - main

    拉取要求觸發程序可能如下所示:

    Triggers: - Type: PULLREQUEST Branches: - main.* Events: - OPEN - REVISION - CLOSED

    排程觸發器可能如下所示:

    Triggers: - Type: SCHEDULE Branches: - main.* # Run the workflow at 1:15 am (UTC+0) every Friday until the end of 2023 Expression: "15 1 ? * FRI 2022-2023"

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

    如需推送、提取要求和排程觸發程序的更多範例,請參閱範例:工作流程中的觸發

  8. (選擇性) 選擇「驗證」,在確認之前驗證工作流程的程YAML式碼。

  9. 選擇「確認」,輸入確認訊息,然後再次選擇「確認」。