生成并发布 Python 应用
Azure DevOps Services | Azure DevOps Server 2022 - Azure DevOps Server 2019
在本快速入门中,你将创建一个用于生成和测试 Python 应用的管道。 了解如何使用 Azure Pipelines 生成、测试和部署 Python 应用和脚本,作为持续集成和持续交付(CI/CD)系统的一部分。
先决条件
- GitHub 帐户,可在其中创建存储库。 免费创建 GitHub 帐户。
- Azure DevOps 组织。 免费创建一个。
- 一个 Azure DevOps 项目。 使用 Azure DevOps 项目创建向导创建一个。
- 能够在Microsoft托管代理上运行管道。 需要 请求并行作业 的免费授予或购买 并行作业。
Python 预安装在 适用于 Linux、macOS 和 Windows 的 Microsoft 托管代理 上。 无需设置更多内容即可生成 Python 项目。 要查看预安装的 Python 版本,请参阅使用 Microsoft 托管的代理。
- GitHub 帐户,可在其中创建存储库。 免费创建 GitHub 帐户。
- Azure DevOps 组织。 免费创建一个。
- 一个 Azure DevOps 项目。 使用 Azure DevOps 项目创建向导创建一个。
- 自托管代理。 若要创建一个代理,请参阅自托管代理。
- 安装在自承载代理上的 Python。 若要在代理上安装 Python,请参阅 UsePythonVersion。
创建示例代码分支
对 GitHub 帐户创建示例 Python 存储库分支。
- 转到 python-sample-vscode-flask-tutorial 存储库。
- 选择页面右上角的分支。
- 选择你的 GitHub 帐户。 默认情况下,分叉的名称与父存储库相同,但你可以将其命名为不同的名称。
重要
在以下过程中,系统可能会提示你创建 GitHub 服务连接 或重定向到 GitHub 以登录、安装 Azure Pipelines 或授权 Azure Pipelines。 按照屏幕上的说明完成该过程。 有关详细信息,请参阅 访问 GitHub 存储库。
创建管道
- 在 Azure DevOps 项目中,选择“管道>创建管道”,然后选择 GitHub 作为源代码的位置。
- 在 “选择存储库 ”屏幕上,选择分叉示例存储库。
- 在“配置管道”屏幕上,选择“入门管道”。
自定义管道
在 “查看管道 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'
运行管道
选择“ 保存并运行”,然后选择“ 保存”并再次运行 。
摘要选项卡会显示管道运行的状态。
若要查看生成项目,请在摘要选项卡中选择已发布链接。
项目页面会显示已发布的生成项目。
项目页面会显示已发布的生成项目。
若要查看测试结果,请选择测试选项卡。
选择“运行”。
内部版本号将显示在页面顶部。 选择该内部版本号以查看此生成的详细信息。
摘要选项卡会显示管道运行的状态。
若要下载生成项目,请从已发布的生成项目部分选择删除链接。
若要查看测试结果,请选择测试选项卡。
清理
完成本快速入门后,可以删除创建的 Azure DevOps 项目。
- 在项目中,选择 页面左下角的项目设置 齿轮图标。
- 在项目概述页面底部,选择删除。
- 输入项目名称,然后选择删除。
恭喜,你已成功创建并运行了一个生成和测试 Python 应用的管道。 现在,可以使用 Azure Pipelines 生成、测试和部署 Python 应用和脚本,作为持续集成和持续交付(CI/CD)系统的一部分。