分享方式:


建置和發佈 Python 應用程式

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

在本快速入門中,您會建立管線來建置及測試 Python 應用程式。 您會看到如何使用 Azure Pipelines 來建置、測試及部署 Python 應用程式和腳本,作為持續整合和持續傳遞 (CI/CD) 系統的一部分。

必要條件

Python 已預安裝在 Linux、macOS 和 Windows Microsoft 裝載的 代理程式上。 您不需要再設定任何項目來建置 Python 專案。 若要查看哪些 Python 版本已預安裝,請參閱 使用Microsoft裝載的代理程式

派生範例程序代碼

將範例 Python 存放庫分支至您的 GitHub 帳戶。

  1. 移至 python-sample-vscode-flask-tutorial 存放庫。
  2. 選取 頁面右上角的 [分支 ]。
  3. 連接您的 GitHub 帳戶。 根據預設,分支的名稱與父存放庫相同,但您可以將它命名為不同的名稱。

重要

在下列程式中,系統可能會提示您建立 GitHub 服務連線 ,或重新導向至 GitHub 以登入、安裝 Azure Pipelines 或授權 Azure Pipelines。 請遵循畫面上的指示來完成此程式。 如需詳細資訊,請參閱 存取 GitHub 存放庫

建立管線

  1. 在您的 Azure DevOps 專案中,選取 [管線建立管線>],然後選取 [GitHub] 作為原始程式碼的位置。
  2. 在 [ 選取存放庫 ] 畫面上,選取分支範例存放庫。
  3. 在 [設定您的管線] 畫面上,選取 [入門管線]。

自訂您的管線

在 [ 檢閱管線 YAML ] 畫面上,將產生的 azure-pipelines.yml 檔案內容取代為下列程序代碼。 程式碼:

  • 安裝必要的 Python 版本和相依性。
  • 封裝將成品建置至 ZIP 封存。
  • 將封存發佈至管線。
  • 執行測試。
trigger:
- main

pool:
  vmImage: ubuntu-latest

strategy:
  matrix:
    Python310:
      python.version: '3.10'
    Python311:
      python.version: '3.11'
    Python312:
      python.version: '3.12'

steps:
  - task: UsePythonVersion@0
    inputs:
      versionSpec: '$(python.version)'
    displayName: 'Use Python $(python.version)'

  - script: |
      python -m pip install --upgrade pip
      pip install -r requirements.txt
    displayName: 'Install dependencies'

  - task: ArchiveFiles@2
    displayName: 'Archive files'
    inputs:
      rootFolderOrFile: $(System.DefaultWorkingDirectory)
      includeRootFolder: false
      archiveType: zip
      archiveFile: $(Build.ArtifactStagingDirectory)/$(Build.BuildId)-$(python.version).zip
      replaceExistingArchive: true

  - task: PublishBuildArtifacts@1
    inputs:
      PathtoPublish: '$(Build.ArtifactStagingDirectory)'
      ArtifactName: 'drop'
      publishLocation: 'Container'

  - script: |
      pip install pytest pytest-azurepipelines
      pytest
    displayName: 'pytest'

自訂 azure-pipelines.yml 以符合您的項目組態。

  • 如果您有不同的代理程式集區,請變更 pool name 參數。
  • 如有必要,請將 Python 版本變更為安裝在自我裝載代理程式上的版本。
  trigger:
  - main

  pool: 
    name: '<your-pool-name or default>'

  steps:
  - task: UsePythonVersion@0
    inputs:
      versionSpec: '3.12'
    displayName: 'Use Python 3.12'  

  - script: |
      python -m pip install --upgrade pip
      pip install -r requirements.txt
    displayName: 'Install dependencies'


  - task: ArchiveFiles@2
    displayName: 'Archive files'
    inputs:
      rootFolderOrFile: $(System.DefaultWorkingDirectory)
      includeRootFolder: false
      archiveType: zip
      archiveFile: $(Build.ArtifactStagingDirectory)/$(Build.BuildId).zip
      replaceExistingArchive: true

  - task: PublishBuildArtifacts@1
    inputs:
      PathtoPublish: '$(Build.ArtifactStagingDirectory)'
      ArtifactName: 'drop'
      publishLocation: 'Container'

  - script: |
      pip install pytest pytest-azurepipelines
      pytest
    displayName: 'pytest'

執行您的管線

選取 [ 儲存並執行],然後選取 [ 儲存並再次執行 ]。

[摘要] 索引標籤會顯示管線執行的狀態。

若要檢視組建成品,請在 [摘要] 索引標籤中選取已發佈的連結。

已發佈組建成品鏈接的螢幕快照。

[ 成品] 頁面會顯示已發佈的組建成品。 已發佈組建成品的螢幕快照。

已完成 Python 作業的螢幕快照。

[ 成品] 頁面會顯示已發佈的組建成品。 已發佈組建成品鏈接的螢幕快照。

若要檢視測試結果,請選取 [ 測試] 索引標籤。

管線測試結果的螢幕快照。

選取執行

組建編號會顯示在頁面頂端。 選取組建編號以查看組建的詳細數據。

管線建置連結的螢幕快照。

[摘要] 索引標籤會顯示管線執行的狀態。

若要下載組建成品,請從 [已發佈的組建成品] 區段中選取除連結。

已完成 Python 作業的螢幕快照。

若要檢視測試結果,請選取 [ 測試] 索引標籤。

管線測試結果的螢幕快照。

清理

當您完成本快速入門時,您可以刪除您所建立的 Azure DevOps 專案。

  1. 在您的專案中,選取 頁面左下角的 [項目設定 ] 齒輪圖示。
  2. 在 [專案概觀] 頁面底部,選取 [刪除]。
  3. 輸入專案名稱,然後選取 [ 刪除]。

恭喜您,您已成功建立並執行管線,以建置並測試 Python 應用程式。 現在,您可以使用 Azure Pipelines 來建置、測試及部署 Python 應用程式和腳本,作為持續整合和持續傳遞 (CI/CD) 系統的一部分。

下一步