生成 Python 应用

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

可以使用 Azure Pipelines 生成、测试和部署 Python 应用和脚本作为 CI/CD 系统的一部分。

本快速入门介绍了如何创建管道来生成和测试 Python 应用。

无需为 Azure Pipelines 设置任何内容即可生成 Python 项目。 Python 预安装在适用于 Linux、macOS 或 Windows 的 Microsoft 托管生成代理上。 要查看预安装的 Python 版本,请参阅使用 Microsoft 托管的代理

先决条件

1. 创建示例代码分支

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

  1. 转到 python-sample-vscode-flask-tutorial 存储库。
  2. 选择页面右上角的分支
  3. 选择要在其中对存储库创建分支的 GitHub 帐户,然后为分支存储库输入名称。

2. 创建管道

  1. 转到 Azure Pipelines 并选择免费开始。 如果出现提示,请登录到你的 DevOps 帐户。

  2. 转到项目,然后选择管道>创建管道

  3. 选择 GitHub 作为源代码位置。

  4. 如果已重定向到 GitHub 进行登录,请输入 GitHub 凭据。

  5. 显示存储库列表时,请选择分支示例存储库。

  6. 配置管道选项卡上,选择入门管道

  1. 在浏览器中,转到 DevOps Server 集合。

  2. 转到项目并选择管道>创建新管道

  3. 选择 GitHub Enterprise Server 以作为源代码的位置。

  4. 如果已重定向到 GitHub 进行登录,请输入 GitHub 凭据。

  5. 显示存储库列表时,请选择分支示例存储库。

  6. 配置管道选项卡上,选择入门管道

3. 自定义管道

将生成的 azure-pipelines.yml 文件内容替换为以下代码。 此代码将安装所需的 Python 版本和依赖项,将 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 以匹配项目配置。

  1. 将生成的 YAML 替换为以下代码。 此代码将安装所需的 Python 版本和依赖项,将 Python 包打包为 zip 文件并发布到管道,然后运行测试。
  2. 如有其他代理池,则请更改池 name 参数。
  3. 更改 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'

4. 运行管道

保存并运行管道。

  1. 选择保存并运行
  2. 保存并运行对话框中,选择保存并运行
  3. 摘要选项卡中,可看到管道运行的状态。
  1. 选择运行
  2. 内部版本号将显示在页面顶部。 选择该内部版本号以查看此生成的详细信息。

管道生成链接的屏幕截图。

已完成 Python 作业的屏幕截图。

用于查看生成项目。 在摘要选项卡中选择已发布链接。

已发布生成项目链接的屏幕截图。

项目页面会显示已发布的生成项目。

已发布生成项目的屏幕截图。

若要查看测试结果,请选择测试选项卡。

管道测试结果的屏幕截图。

摘要选项卡会显示管道运行的状态。

已完成 Python 作业的屏幕截图。

若要查看生成项目,请在摘要选项卡中选择已发布链接。

已发布生成项目链接的屏幕截图。

若要查看测试结果,请选择测试选项卡。

管道测试结果的屏幕截图。

摘要选项卡会显示管道运行的状态。

已完成 Python 作业的屏幕截图。

若要下载生成项目,请从已发布的生成项目部分选择删除链接。

若要查看测试结果,请选择测试选项卡。

管道测试结果的屏幕截图。

清理

完成本快速入门后,便可删除在 Azure DevOps 中创建的项目。

  1. 在此页面的左下角选择项目设置齿轮图标。
  2. 项目概述页面底部,选择删除
  3. 输入项目名称,然后选择删除

恭喜,你已成功完成本快速入门!

后续步骤