本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
新增觸發器至工作流
使用以下說明將推送、拉動或排程觸發器新增至您的 Amazon CodeCatalyst 工作流程。
關於觸發條件的詳細資訊,請參閱 使用觸發器啟動工作流程自動執行。
- Visual
-
若要新增觸發器 (視覺化編輯器)
請在以下位置開啟 CodeCatalyst 主控台。
https://codecatalyst.aws/ -
選擇您的專案。
-
在瀏覽窗格中,選擇 CI/CD,然後選擇 [工作流程]。
-
選擇工作流程的名稱。您可以依定義工作流程的來源儲存庫或分支名稱進行篩選,或依工作流程名稱或狀態進行篩選。
-
選擇編輯。
-
選擇 [視覺]。
-
在工作流程圖表中,選擇「來源與觸發程式」方塊。
-
在設定窗格中,選擇 [新增觸發器]。
-
在「新增觸發器」對話方塊中,在欄位中提供資訊,如下所示。
觸發類型
指定觸發器的類型。您可以使用下列其中一個值:
-
推送 (視覺化編輯器) 或
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-month
或days-of-week
字段,但不能兩者兼而有之。如果您在其中一個欄位中指定值或星號 (*
),則必須在另一個欄位中使用問號 (?
)。星號表示「全部」,問號表示「任何」。
如需 Cron 運算式的更多範例和萬用字元 (例如
?
、和L
) 的相關資訊*
,請參閱 Amazon EventBridge 使用者指南中的 Cron 運算式參考。Cron 表達式 EventBridge 和 CodeCatalyst 工作方式完全相同。如需排程觸發器的範例,請參閱範例:工作流程中的觸發。
分支和分支模式
(選用)
指定觸發程式監視的來源儲存庫中的分支,以便知道何時開始工作流程執行。您可以使用正則表達式模式來定義分支名稱。例如,使用
main.*
來比對以開頭的所有分支main
。根據觸發器類型,要指定的分支會有所不同:
-
對於推送觸發器,請指定要推送到的分支,也就是目標分支。每個匹配的分支將使用匹配分支中的文件啟動一個工作流程運行。
範例:
main.*
,mainline
-
對於提取要求觸發程序,請指定您要推送到的分支,也就是目的地分支。每個匹配的分支將使用工作流程定義文件和源文件(而不是匹配的分支)啟動一個工作流程運行。
範例:
main.*
,mainline
,v1\-.*
(符合開頭為的分支v1-
) -
對於排程觸發器,請指定包含您要排程執行使用之檔案的分支。每個匹配的分支將使用工作流程定義文件和匹配分支中的源文件啟動一個工作流程運行。
範例:
main.*
,version\-1\.0
注意
如果您未指定分支,則觸發程序會監視來源儲存庫中的所有分支,並使用下列項目中的工作流程定義檔案和來源檔案啟動工作流程執行:
-
您正在推送的分支(用於推送觸發器)。如需詳細資訊,請參閱 範例:簡單的程式碼推送觸發器。
-
您從中提取的分支(用於拉取請求觸發器)。如需詳細資訊,請參閱 範例:簡單的提取要求觸發程序。
-
所有分支 (用於排程觸發器)。來源儲存庫中的每個分支都會啟動一個工作流程執行。如需詳細資訊,請參閱 範例:一個簡單的排程觸發。
如需有關分支和觸發程序的更多資訊,請參閱觸發器和分支的使用指南。
如需更多範例,請參閱範例:工作流程中的觸發。
檔案已變更
只有在選取「推送」或「提取」要求觸發程式類型時,才會顯示此欄位
指定觸發程式監視的來源儲存庫中的檔案或資料夾,以便知道何時開始執行工作流程。您可以使用規則運算式來比對檔案名稱或路徑。
如需範例,請參閱 範例:工作流程中的觸發。
-
-
(選擇性) 選擇「驗證」,在確認之前驗證工作流程的程YAML式碼。
-
選擇「確認」,輸入確認訊息,然後再次選擇「確認」。
- YAML
-
若要新增觸發YAML器 (編輯器)
請在以下位置開啟 CodeCatalyst 主控台。
https://codecatalyst.aws/ -
選擇您的專案。
-
在瀏覽窗格中,選擇 CI/CD,然後選擇 [工作流程]。
-
選擇工作流程的名稱。您可以依定義工作流程的來源儲存庫或分支名稱進行篩選,或依工作流程名稱或狀態進行篩選。
-
選擇編輯。
-
選擇YAML。
-
使用下列範例做為指南,新增
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。如需推送、提取要求和排程觸發程序的更多範例,請參閱範例:工作流程中的觸發。
-
(選擇性) 選擇「驗證」,在確認之前驗證工作流程的程YAML式碼。
-
選擇「確認」,輸入確認訊息,然後再次選擇「確認」。