建立您的第一個管線

Azure DevOps Services | Azure DevOps Server 2022 - Azure DevOps Server 2019

這是使用 Azure Pipelines 從 Git 存放庫建置範例應用程式的逐步指南。 本指南使用以 YAML 管線編輯器設定的 YAML 管線。 如果您想要改用傳統管線,請參閱 定義您的傳統管線。 如需使用 TFVC 的指引,請參閱 建置 TFVC 存放庫

必要條件 - Azure DevOps

請確認您擁有以下項目:

  • 您可以在其中建立存放庫的 GitHub 帳戶。 免費建立一個

  • Azure DevOps 組織。 免費建立一個。 如果您的小組已經有一個,請確定您是您想要使用的 Azure DevOps 專案的系統管理員。

  • 能夠在 Microsoft 裝載的代理程式上執行管線。 若要使用 Microsoft 託管的代理程式,Azure DevOps 組織必須能夠存取 Microsoft 託管的平行作業。 您可以購買 平行作業 ,也可以 要求免費授與。

建立您的第一個管線

取得 Java 範例程式代碼

若要開始使用,請將下列存放庫分支至您的 GitHub 帳戶。

https://github.com/MicrosoftDocs/pipelines-java

建立您的第一個 Java 管線

  1. 登入您的 Azure DevOps 組織並前往您的專案。

  2. 移至 [管線],然後在建立第一個管線時選取 [ 新增管線 ] 或 [建立管線 ]。

  3. 執行精靈的步驟,首先選取 [GitHub] 作為您的原始程式碼位置。

  4. 系統可能會將您重新導向至 GitHub 以進行登入。 若是如此,請輸入 GitHub 認證。

  5. 當您看到存放庫清單時,請選取您的存放庫。

  6. 系統可能會將您重新導向至 GitHub,以安裝 Azure Pipelines 應用程式。 如果發生此情況,請選取 [核准並安裝]

  1. Azure Pipelines 會分析您的存放庫,並建議 Maven 管線範本。

  2. 在新的管線出現時,請查看 YAML 以了解其用途。 當您準備好時,請選取 [儲存並執行]

  3. 系統會提示您將新 azure-pipelines.yml 檔案認可至存放庫。 滿意訊息之後,請選取 [ 儲存],然後再次執行

    如果您想要監看管線的運作情形,請選取建置作業。

    您剛建立並執行我們為您自動建立的管線,因為您的程序代碼似乎與 Maven 範本相符

    您現在已在存放庫中有一個可運作的 YAML 管線 (azure-pipelines.yml),可供您自定義!

  4. 當您準備好變更管線時,請在 [管線] 頁面中選取它,然後編輯azure-pipelines.yml檔案。

深入瞭解 如何在管線中使用Java

檢視和管理管線

您可以從左側功能表中選擇 [管 線],以前往管線登陸頁面,以檢視和管理管線。

管線登陸頁面的螢幕快照。

您可以從管線登陸頁面檢視管線和管線執行、建立和匯入管線、管理安全性,以及向下切入管線並執行詳細數據。

選擇 [最近使用 ] 以檢視最近執行的管線(預設檢視),或選擇 [ 全部 ] 以檢視所有管線。

在管線登陸頁面上檢視管線執行的選項螢幕快照。

選取管線來管理該管線並 檢視執行。 選取上次執行的組建編號以檢視該組建的結果、選取分支名稱以檢視該執行的分支,或選取操作功能表來執行管線並執行其他管理動作。

最近執行管線的螢幕快照。

選取 [ 執行] 以檢視所有管線執行。 您可以選擇性地篩選顯示的回合。

管線執行的螢幕快照。

選取管線執行以檢視該執行的相關信息。

您可以選擇從操作選單保留或移除執行。 如需執行保留的詳細資訊,請參閱 建置和發行保留原則

管線執行操作功能表的螢幕快照。

檢視管線詳細數據

管線的詳細數據頁面可讓您檢視和管理該管線。

管線詳細數據頁面的螢幕快照。

選擇 [ 編輯 ] 以編輯您的管線。 如需詳細資訊,請參閱 YAML 管線編輯器。 您也可以直接在裝載管線的存放庫中修改 azure-pipelines.yml 檔案,以編輯管線。

檢視管線執行詳細數據

從管線執行摘要中,您可以檢視執行狀態,無論是在執行中還是完成時。

管線執行摘要的螢幕快照。

您可以從摘要窗格中檢視作業和階段詳細數據、下載成品,以及流覽至鏈接的認可、測試結果和工作專案。

作業和階段

[作業] 窗格會顯示階段和作業狀態的概觀。 此窗格可能會有多個索引卷標,視您的管線是否有階段和作業,或只有作業而定。 在此範例中,管線有兩個階段,名為 BuildDeploy。 您可以從 [階段] 或 [作業] 窗格選擇作業,向下切入至管線步驟。

管線作業和階段的螢幕快照。

選擇作業以查看該作業的步驟。

管線工作的螢幕快照。

從步驟檢視中,您可以檢視每個步驟的狀態和詳細數據。 您可以從 [ 更多動作 ] 切換時間戳,或檢視管線中所有步驟的原始記錄檔。

管線工作內容功能表的螢幕快照。

取消並重新執行管線

如果管線正在執行,您可以選擇 [取消] 來取消它。 如果執行已完成,您可以選擇 [執行新的] 來重新執行管線

取消管線執行的螢幕快照。

管線執行更多動作功能表

您可以從 [更多動作] 功能表下載記錄、新增標籤、編輯管線、刪除執行,以及設定執行保留。

管線執行摘要頁面更多動作功能表的螢幕快照。

注意

如果保留執行,便無法刪除執行。 如果您沒有看到 [刪除],請選擇 [停止保留執行],然後刪除執行。 如果您同時看到 [刪除] 和 [檢視保留版本],則表示仍有一或多個已設定的保留原則套用至您的執行。 選擇 [檢視保留版本]、刪除原則 (只會移除所選執行的原則),然後刪除執行。

將狀態徽章新增至您的存放庫

許多開發人員喜歡在存放庫中顯示狀態徽章,以顯示其程式代碼品質高。

狀態徽章顯示 Azure 管線成功

若要將狀態徽章複製到剪貼簿:

  1. 在 Azure Pipelines 中,移至 [管線] 頁面以檢視管線清單。 選取您在上一節中建立的管線。

  2. 選取 ,然後選取 [ 狀態徽章]。

  3. 選取 [ 狀態徽章]。

  4. 從範例 Markdown 區段複製範例 Markdown。

現在,在剪貼簿中使用 Markdown 徽章,在 GitHub 中執行下列步驟:

  1. 移至檔案清單,然後選取 Readme.md。 選取鉛筆圖示進行編輯。

  2. 將狀態徽章 Markdown 貼到檔案的開頭。

  3. 將變更認可至 main 分支。

  4. 請注意,狀態徽章會出現在存放庫的描述中。

若要設定私人專案的匿名存取徽章:

  1. 流覽至頁面左下角的專案 設定

  2. 開啟 [管線] 底下的 [設定] 索引標籤

  3. 切換 [一般] 下方的 [停用匿名存取徽章] 滑桿

注意

即使在私人專案中,預設也會啟用匿名徽章存取。 啟用匿名徽章存取後,組織外部的用戶或許可以透過徽章狀態 API 查詢資訊,例如專案名稱、分支名稱、作業名稱,以及建置狀態。

因為您剛變更此存放庫中的 Readme.md 檔案,所以 Azure Pipelines 會根據存放庫根目錄中檔案中的 azure-pipelines.yml 組態,自動建置程式代碼。 回到 Azure Pipelines,觀察新的執行隨即出現。 每次進行編輯時,Azure Pipelines 都會啟動新的執行。

我們將示範如何使用 Azure DevOps Server 2019 中的傳統編輯器來建立列印 「Hello world」 的組建和發行。

必要條件

初始化存放庫

如果您的專案中已經有存放庫,可以跳到下一個步驟: 跳到將腳本新增至存放庫

  1. 移至 Azure Repos。 (The 上一個導覽中的程式碼 中樞)

    存放庫檔案

  2. 如果您的專案是空的,您將會受到畫面的歡迎,以協助您將程式代碼新增至存放庫。 選擇底部選項,以使用readme檔案初始化存放庫:

    初始化存放庫

將腳本新增至您的存放庫

建立列印的 Hello worldPowerShell 腳本。

  1. 移至 Azure Repos

  2. 新增檔案。

    在 [檔案] 索引標籤的 [存放庫] 節點中,選取 [新增檔案] 選項

  3. 在對話框中,為您的新檔案命名並加以建立。

    HelloWorld.ps1
    
  4. 複製並貼上此腳本。

    Write-Host "Hello world"
    
  5. 認可 (儲存) 檔案。

在本教學課程中,我們的重點是 CI/CD,因此我們會讓程式代碼部分保持簡單。 我們正直接在網頁瀏覽器中使用 Azure Repos Git 存放庫。

當您準備好開始建置和部署實際應用程式時,您可以使用各種版本控制用戶端和服務搭配 Azure Pipelines CI 組建。 深入了解

建立組建管線

建立列印 「Hello world」 的組建管線。

  1. 選取 [Azure Pipelines],它應該會自動帶您前往 [ 組建 ] 頁面。

    移至 [建置] 索引標籤

  2. 建立新管線。

    選取 [建置] 索引標籤按鈕

    針對新的 Azure DevOps 使用者,這會自動帶您前往 YAML 管線建立體驗。 若要前往傳統編輯器並完成本指南,您必須關閉新 YAML 管線建立體驗預覽功能

    按兩下畫面右上方的 [設定],然後按兩下 [預覽功能]

    按兩下切換以關閉 yaml 預覽功能

  3. 請確定 來源專案存放庫和預設 分支 符合您建立腳本的位置。

  4. 空白作業開始。

  5. 在左側,選取 [ 管線 ],並指定您想要使用的任何 名稱 。 針對 [ 代理程式集區],選取 [ 託管 VS2017]。

  6. 在左側,選取加號 (+) 以將工作新增至 作業 1。 在右側,選取 [公用程式 ] 類別,從清單中選取 PowerShell 工作,然後選擇 [ 新增]。

    將建置工作新增至作業

  7. 在左側,選取新的 PowerShell 腳本工作。

  8. 針對 [ 腳本路徑] 自變數,選取 按鈕以流覽您的存放庫,然後選取您所建立的腳本。

    選取您的腳本

  9. 選取 [ 儲存和佇列],然後選取 [ 儲存]。

組建管線是您定義自動化建置管線的實體。 在建置管線中,您會撰寫一組工作,每個工作都會在組建中執行步驟。 工作目錄提供一組豐富的工作,讓您開始使用。 您也可以將 PowerShell 或殼層腳本新增至組建管線。

從組建發佈成品

一般組建會產生成品,然後可在發行中部署到各種階段。 在這裡,為了以簡單的方式示範功能,我們只會將腳本發佈為成品。

  1. 在 [ 工作] 索引標籤上,選取加號 (+) 將工作新增至 作業 1

  2. 選取 [ 公用程式 ] 類別,選取 [發佈組建成品 ] 工作,然後選取 [ 新增]。

    新增發行成品工作

    發佈路徑:選取 要瀏覽的按鈕,然後選取您所建立的腳本。

    成品名稱:輸入 drop

    成品發佈位置:選取 [Azure Artifacts/TFS]。

成品是您想要建置產生的檔案。 成品幾乎可以是小組測試或部署應用程式所需的任何專案。 例如,您有.DLL和.EXE可執行檔案和 。C# 或 C++ .NET Windows 應用程式的 PDB 符號檔案。

為了讓您能夠產生成品,我們提供工具,例如複製模式比對,以及您可以在其中收集成品的預備目錄,再發佈這些成品。 請參閱 Azure Pipelines 中的成品。

開啟持續整合 (CI)

  1. 選取 [觸發程序] 索引標籤。

  2. 啟用 持續整合

組建管線上的持續整合觸發程式指出,每當認可程式代碼變更時,系統應該自動將新組建排入佇列。 您可以讓觸發程式更一般或更具體,也可以排程您的組建(例如,每晚使用)。 請參閱 建置觸發程式

儲存並排入組建佇列

手動儲存並排入組建佇列,並測試您的組建管線。

  1. 選取 [ 儲存和佇列],然後選取 [ 儲存和佇列]。

  2. 在對話框中,再次選取 [ 儲存和佇列 ]。

    這會在 Microsoft 裝載的代理程式上將新組建排入佇列。

  3. 您會看到頁面頂端新組建的連結。

    組建主控台

    選擇連結以監看新組建發生時。 配置代理程序之後,您就會開始看到組建的實時記錄。 請注意,PowerShell 腳本會在組建中執行,而且 「Hello world」 會列印到控制台。

    在組建控制台中監看

  4. 移至組建摘要。 在組建的 [ 成品] 索引 卷標上,請注意腳本會發佈為成品。

    開啟組建主控台以查看成品

新增一些變數,並將變更認可至您的腳本

我們會將一些組建變數傳遞至腳本,讓我們的管線更有趣一點。 然後,我們會認可對腳本的變更,並監看 CI 管線自動執行以驗證變更。

  1. 編輯您的組建管線。

  2. 在 [ 工作] 索引標籤上,選取 PowerShell 腳本工作。

  3. 新增這些自變數。

在組建控制台中開啟PowerShell工作

引數

-greeter "$(Build.RequestedFor)" -trigger "$(Build.Reason)"

最後,儲存組建管線。

接下來,您會將自變數新增至腳本。

  1. 移至 Azure Repos 中的檔案上一個導覽中的程式代碼中樞和 TFS)。

  2. 選取 HelloWorld.ps1 檔案,然後編輯檔案。

  3. 變更腳本,如下所示:

    Param(
    [string]$greeter,
    [string]$trigger
    )
    Write-Host "Hello world" from $greeter
    Write-Host Trigger: $trigger
    
  4. 認可 (儲存) 文稿。

現在您可以看到變更的結果。 移至 [Azure Pipelines] ,然後選取 [ 排入佇列]。 請注意,在 [ 已排入佇列或執行中 ] 區段底下,組建會自動由您認可的變更觸發。

  1. 選取已建立的新組建並檢視其記錄檔。

  2. 請注意,變更程式代碼的人員在問候語訊息中印有其名稱。 您也會看到這是 CI 組建的列印。

建置摘要 PowerShell 腳本記錄

我們只是在這些步驟中引進了建置變數的概念。 我們列印了系統自動預先定義和初始化的變數值。 您也可以定義自定義變數,並將其用於工作的自變數,或做為腳本內的環境變數。 若要深入瞭解變數,請參閱 建置變數

您有組建管線。 接下來是什麼?

您已建立組建管線,以自動建置並驗證小組簽入的任何程序代碼。 此時,您可以繼續進行下一節,以了解發行管線。 或者,如果您想要的話,您可以 直接 跳到為您的應用程式建立組建管線。

建立發行管線

定義兩個階段中執行腳本的程式。

  1. 移至 [ 管線] 索引 卷標,然後選取 [ 發行]。

  2. 選取要建立新管線動作。 如果已建立發行管線,請選取加號 (+) ,然後選取 [ 建立發行管線]。

  3. 選取要以空白作業開頭的動作。

  4. 將階段 QA 命名為 。

  5. 在 [成品] 面板中,選取 [+ 新增] 並指定 [來源] [建置管線]。 選取 [新增]。

  6. 選取閃電以觸發持續部署,然後在右側啟用持續部署觸發程式

    選取閃電以觸發持續部署

  7. 選取 [ 工作] 索引標籤,然後選取您的 QA 階段。

  8. 選取作業的加號 (+) 以將工作新增至作業。

  9. 在 [新增工作] 對話框中,選取 [公用程式],找出 PowerShell 工作,然後選取其 [新增] 按鈕。

  10. 在左側,選取新的 PowerShell 腳本工作。

  11. 針對 [ 腳本路徑] 自變數,選取 按鈕以流覽您的成品,然後選取您所建立的腳本。

  12. 新增這些 自變數

    -greeter "$(Release.RequestedFor)" -trigger "$(Build.DefinitionName)"
    
  13. 在 [ 管線] 索引標籤上 ,選取 [QA ] 階段,然後選取 [ 複製]。

    在 QA 中複製發行環境

  14. 重新命名複製階段 生產

  15. 重新命名發行管線 Hello world

    重新命名發行管線 hello world

  16. 儲存發行管線。

發行管線是部署應用程式組建成品的階段集合。 它也會定義每個階段的實際部署管線,以及成品從一個階段升級到另一個階段的方式。

此外,請注意,我們在腳本自變數中使用了一些變數。 在此情況下,我們使用 發行變數 ,而不是用於建置管線的組建變數。

部署版本

在每個階段中執行腳本。

  1. 建立新版本。

    建立版本 - DevOps 2019 和 2020

    當 [建立新版本] 出現時,選取 [建立]。

  2. 開啟您所建立的版本。

    已建立版本 - DevOps 2019 和 2020

  3. 檢視記錄以取得有關發行的實時數據。

    發行記錄 - DevOps 2019 和 2020

您可以追蹤每個版本的進度,以查看其是否已部署到所有階段。 您可以追蹤屬於每個發行一部分的認可、相關聯的工作專案,以及您已新增至發行管線的任何測試回合結果。

變更您的程式代碼並監看它自動部署至生產環境

我們將再對腳本進行一次變更。 這次會自動建置,然後一路部署至生產階段。

  1. 移至 [程序代碼樞]、[檔案] 索引標籤、編輯 HelloWorld.ps1 檔案,然後變更它,如下所示:

    Param(
    [string]$greeter,
    [string]$trigger
    )
    Write-Host "Hello world" from $greeter
    Write-Host Trigger: $trigger
    Write-Host "Now that you've got CI/CD, you can automatically deploy your app every time your team checks in code."
    
  2. 認可 (儲存) 文稿。

  3. 選取 [ 組建] 索引 標籤,以查看組建已排入佇列並執行。

  4. 建置完成後,選取 [發行] 索引 標籤,開啟新版本,然後移至 [ 記錄]。

新的程式代碼會自動部署在 QA 階段,然後在 生產 階段。

發行腳本步驟最終記錄 - DevOps 2019 和 2020

在許多情況下,您可能想要編輯發行管線,讓生產部署只有在一些測試和核准就緒之後才會進行。 請參閱 核准和閘道概觀

下一步

您剛剛瞭解如何在 Azure 中建立您的第一個管線。 深入瞭解以您選擇的語言設定管線:

或者,您可以繼續 自定義您剛才建立的管線

若要在容器中執行管線,請參閱 容器作業

如需建置 GitHub 存放庫的詳細資訊,請參閱 建置 GitHub 存放庫

若要瞭解如何發佈管線成品,請參閱 發佈管線成品

若要瞭解您可以在 YAML 管線中執行的其他動作,請參閱 YAML 架構參考

清理

如果您建立了任何測試管線,當您完成測試管線時,它們很容易刪除。

若要刪除管線,請流覽至該管線的摘要頁面,然後從頁面右上方的 [...] 功能表中選擇 [刪除]。 輸入要確認的管線名稱,然後選擇 [ 刪除]。

刪除管線

您已瞭解建立和執行管線的基本概念。 現在您已準備好為所使用的程式設計語言設定組建管線。 請繼續建立新的組建管線,這次,請使用下列其中一個範本。

語言 要使用的範本
.NET ASP.NET
.NET Core ASP.NET Core
C++ .NET 桌面
Go Go
Java Gradle (英文)
JavaScript Node.js
Xcode Xcode

常見問題集

我可以在哪裡閱讀 DevOps 和 CI/CD 的相關文章?

什麼是持續整合?

什麼是持續傳遞?

什麼是 DevOps?

我可以使用哪個版本控制系統?

當您準備好開始使用應用程式的 CI/CD 時,您可以使用您選擇的版本控制系統:

如何? 複寫管線?

如果您的管線有您想要在其他管線中複寫的模式,請複製、匯出或儲存為範本。

all-definitions-build-action-menu-replicate-actions

複製管線之後,您可以進行變更,然後加以儲存。

匯出管線之後,您可以從 [ 所有管線] 索引 卷標匯入它。

建立範本之後,小組成員就可以使用它來遵循新管線中的模式。

提示

如果您使用 [ 新增組建編輯器],則自定義範本會顯示在清單底部。

如何? 使用草稿嗎?

如果您要編輯組建管線,而且想要測試尚未準備好用於生產環境的一些變更,您可以將它儲存為草稿。

另存新檔草稿

您可以視需要編輯和測試草稿。

編輯草稿 - DevOps 2019 和 2020

當您準備好時,可以發佈草稿,將變更合併至組建管線。

發佈草稿 - DevOps 2019 和 2020

或者,如果您決定捨棄草稿,您可以從上面顯示的 [所有管線] 索引卷標中刪除。

如何刪除管線?

若要刪除管線,請流覽至該管線的摘要頁面,然後從頁面右上方的 [...] 功能表中選擇 [刪除]。 輸入要確認的管線名稱,然後選擇 [ 刪除]。

當我將組建排入佇列時,還能怎麼做?

您可以自動或手動將組建排入佇列。

當您手動將組建排入佇列時,您可以單一執行組建:

您可以自動或手動將組建排入佇列。

當您手動將組建排入佇列時,您可以單一執行組建:

我可以在哪裡深入瞭解管線設定?

若要深入瞭解管線設定,請參閱:

如何? 以程序設計方式建立組建管線?

REST API 參考:建立組建管線

注意

您也可以使用 Azure Pipelines CLI 從命令行或腳本管理組建和建置管線。