

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

# DevOps 管道範例
<a name="concepts-devops-example"></a>

以 DevOps 管道為例子，兩階段管道可能有一個稱為 **Source (來源)** 的來源階段，第二個階段稱為 **Prod**。在此範例中，管道會以最新的變更來更新應用程式，並持續部署最新的結果。在部署最新的應用程式之前，管道會建置並測試 Web 應用程式。在此範例中，針對稱為 MyRepository 的 GitHub 儲存庫中的一個 Web 應用程式，一組開發人員已建立基礎架構範本和原始程式碼。

![\[具有範例階段和動作的管道。\]](http://docs.aws.amazon.com/zh_tw/codepipeline/latest/userguide/images/pipeline-elements-workflow-application.png)


例如，開發人員將修正程式推送到 Web 應用程式的索引頁，並發生下列情況：

1. 應用程式原始程式碼放在管道中設定為 GitHub 來源動作的儲存庫中維護。當開發人員將遞交推送至儲存庫時，CodePipeline 會偵測推送的變更，而管道執行會從**來源階段**開始。

1. GitHub 來源動作成功完成 (也就是說，最新的變更已經下載並儲存到該執行的唯一成品儲存貯體)。然後，GitHub 來源動作產生的*輸出成品* (來自儲存庫的應用程式檔案)，成為下一階段的動作所處理的*輸入成品*。

1. 管道執行從**來源階段**轉換到**生產階段**。**Prod Stage** 中的第一個動作會執行在 CodeBuild 中建立的建置專案，並在管道中設定為建置動作。建置任務提取建置環境映像，並在虛擬容器中建置 Web 應用程式。

1. **Prod Stage** 中的下一個動作是在 CodeBuild 中建立並設定為管道中測試動作的單元測試專案。

1. 經過單元測試的程式碼接下來由**生產階段**中的部署動作處理，該動作會將應用程式部署到生產環境。部署動作成功完成後，階段中的最終動作是在 CodeBuild 中建立的整合測試專案，並在管道中設定為測試動作。測試動作呼叫 Shell 指令碼，在 Web 應用程式上安裝並執行測試工具 (例如連結檢查程式)。成功完成後，輸出是一個已建置的 Web 應用程式和一組測試結果。

開發人員可以將動作新增至管道，以部署或進一步測試已建置並測試過每一項變更的應用程式。

如需詳細資訊，請參閱[管道執行的運作方式](concepts-how-it-works.md)。