生成并发布 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 托管的代理

创建示例代码分支

对 GitHub 帐户创建示例 Python 存储库分支。

  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 以匹配项目配置。

  • 如有其他代理池,则请更改池 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)系统的一部分。

后续步骤