

Amazon CodeCatalyst 不再向新客戶開放。現有客戶可以繼續正常使用該服務。如需詳細資訊，請參閱[如何從 CodeCatalyst 遷移](migration.md)。

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

# 使用工作流程建置、測試和部署
<a name="workflow"></a>

在 [CodeCatalyst 開發環境中](devenvironment.md)撰寫應用程式碼並將其推送至 [CodeCatalyst 來源儲存庫](source.md)後，您就可以進行部署。自動執行此操作的方式是透過工作流程。

*工作流程*是一種自動化程序，說明如何建置、測試和部署您的程式碼，做為持續整合和持續交付 (CI/CD) 系統的一部分。工作流程定義了工作流程執行期間要採取的一系列步驟或*動作*。工作流程也會定義導致工作流程啟動的事件或*觸發條件*。若要設定工作流程，您可以使用 CodeCatalyst 主控台的[視覺化或 YAML 編輯器](https://docs.aws.amazon.com//codecatalyst/latest/userguide/flows.html#workflow.editors)建立*工作流程定義檔案*。

**提示**  
若要快速了解如何在專案中使用工作流程，[請使用藍圖建立專案](https://docs.aws.amazon.com//codecatalyst/latest/userguide/projects-create.html#projects-create-console-template)。每個藍圖都會部署可檢閱、執行和實驗的正常運作工作流程。

## 關於工作流程定義檔案
<a name="workflow.example"></a>

*工作流程定義檔案*是描述工作流程的 YAML 檔案。根據預設，檔案會存放在[來源儲存庫](source-repositories.md)根目錄的`~/.codecatalyst/workflows/`資料夾中。檔案可以有 .yml 或 .yaml 副檔名，且副檔名必須為小寫。

以下是簡單工作流程定義檔案的範例。我們會在下表中說明此範例的每一行。

```
Name: MyWorkflow
SchemaVersion: 1.0
RunMode: QUEUED
Triggers:
  - Type: PUSH
    Branches:
      - main
Actions:
  Build:
    Identifier: aws/build@v1
    Inputs:
      Sources:
        - WorkflowSource
    Configuration:     
      Steps:
        - Run: docker build -t MyApp:latest .
```


| 折線圖 | Description | 
| --- | --- | 
|  <pre>Name: MyWorkflow</pre>  | 指定工作流程的名稱。如需 `Name` 屬性的詳細資訊，請參閱 [最上層屬性](workflow-reference.md#workflow.top.level)。 | 
|  <pre>SchemaVersion: 1.0</pre>  | 指定工作流程結構描述版本。如需 `SchemaVersion` 屬性的詳細資訊，請參閱 [最上層屬性](workflow-reference.md#workflow.top.level)。 | 
|  <pre>RunMode: QUEUED</pre>  | 指出 CodeCatalyst 如何處理多個執行。如需執行模式的詳細資訊，請參閱 [設定執行的佇列行為](workflows-configure-runs.md)。 | 
|  <pre>Triggers:</pre>  | 指定會導致工作流程執行開始的邏輯。關於觸發條件的詳細資訊，請參閱 [使用觸發程序自動啟動工作流程執行](workflows-add-trigger.md)。 | 
|  <pre>- Type: PUSH<br />  Branches:<br />    - main</pre>  | 指出每當您將程式碼推送至預設來源儲存庫的`main`分支時，工作流程都必須啟動。如需工作流程來源的詳細資訊，請參閱 [將來源儲存庫連線至工作流程](workflows-sources.md)。 | 
|  <pre>Actions:</pre>  | 定義工作流程執行期間要執行的任務。在此範例中， `Actions`區段會定義名為 的單一動作`Build`。如需 動作的詳細資訊，請參閱 [設定工作流程動作](workflows-actions.md)。 | 
|  <pre>Build:</pre>  | 定義`Build`動作的屬性。如需建置動作的詳細資訊，請參閱 [使用工作流程建置](build-workflow-actions.md)。 | 
|  <pre>Identifier: aws/build@v1</pre>  | 指定建置動作的唯一、硬式編碼識別符。 | 
|  <pre>Inputs:<br />  Sources:<br />    - WorkflowSource</pre>  | 指出建置動作應該在`WorkflowSource`來源儲存庫中尋找完成其處理所需的檔案。如需詳細資訊，請參閱[將來源儲存庫連線至工作流程](workflows-sources.md)。 | 
|  <pre>Configuration:</pre>  | 包含建置動作特有的組態屬性。 | 
|  <pre>Steps:<br />  - Run: docker build -t MyApp:latest .</pre>  | 告知建置動作以建置名為 的 Docker 映像，`MyApp`並使用 標記`latest`。 | 

如需工作流程定義檔案中所有可用屬性的完整清單，請參閱 [工作流程 YAML 定義](workflow-reference.md)。

## 使用 CodeCatalyst 主控台的視覺效果和 YAML 編輯器
<a name="workflow.editors"></a>

若要建立和編輯工作流程定義檔案，您可以使用您偏好的編輯器，但我們建議您使用 CodeCatalyst 主控台的視覺化編輯器或 YAML 編輯器。這些編輯器提供有用的檔案驗證，以協助確保 YAML 屬性名稱、值、巢狀、間距、大小寫等正確無誤。

下圖顯示視覺化編輯器中的工作流程。視覺化編輯器提供您完整的使用者介面，可讓您透過此界面建立和設定工作流程定義檔案。視覺化編輯器包含工作流程圖 (1)，其中顯示工作流程的主要元件，以及組態區域 (2)。

![工作流程視覺化編輯器](http://docs.aws.amazon.com/zh_tw/codecatalyst/latest/userguide/images/flows/workflow-visual-editor.png)


或者，您可以使用 YAML 編輯器，如下圖所示。使用 YAML 編輯器在大型程式碼區塊中貼上 （例如，來自教學課程），或新增未透過視覺化編輯器提供的進階屬性。

![工作流程 YAML 編輯器](http://docs.aws.amazon.com/zh_tw/codecatalyst/latest/userguide/images/flows/workflow-yaml-editor.png)


您可以從視覺化編輯器切換到 YAML 編輯器，以查看組態對基礎 YAML 程式碼的影響。

## 探索工作流程
<a name="workflow.discovering"></a>

您可以在工作流程摘要頁面上檢視您的**工作流程**，以及您在相同專案中設定的其他工作流程。

下圖顯示**工作流程**摘要頁面。它會填入兩個工作流程： **BuildToProd** 和 **UnitTests**。您可以看到兩者都已執行幾次。您可以選擇**最近執行**來快速查看執行歷史記錄，或選擇工作流程的名稱來查看工作流程的 YAML 程式碼和其他詳細資訊。

![工作流程日誌](http://docs.aws.amazon.com/zh_tw/codecatalyst/latest/userguide/images/flows/workflow-list.png)


## 檢視工作流程執行詳細資訊
<a name="workflow.runs"></a>

您可以在工作流程摘要頁面中選擇執行，以檢視**工作流程**執行的詳細資訊。

下圖顯示名為 **Run-cc11d** 的工作流程執行詳細資訊，該工作流程會在遞交來源時自動啟動。工作流程圖表指出動作失敗 (1)。您可以導覽至日誌 (2)，以檢視詳細的日誌訊息並疑難排解問題。如需工作流程執行的詳細資訊，請參閱 [執行工作流程](workflows-working-runs.md)。

![工作流程日誌](http://docs.aws.amazon.com/zh_tw/codecatalyst/latest/userguide/images/flows/workflow-visual-logs.png)


## 後續步驟
<a name="workflow.next"></a>

若要進一步了解工作流程概念，請參閱 [工作流程概念](workflows-concepts.md)。

若要建立您的第一個工作流程，請參閱 [工作流程入門](workflows-getting-started.md)。