You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Azure Pipelines中分离Python脚本的构建与发布管道?

拆分Azure Pipelines构建与部署管道的操作步骤

核心结论

必须在构建管道中生成制品,发布管道才能基于该制品执行部署操作——因为发布管道需要获取构建好的代码、依赖配置等文件,而制品是构建与发布之间的传递载体。


第一步:修改构建管道,添加制品发布流程

保留原构建逻辑(设置Python版本、安装依赖),新增打包代码与配置、发布制品的步骤,修改后的管道YAML如下:

trigger: 
  none
pool:
  vmImage: "windows-latest"

steps:
  # 设置Python版本
- task: UsePythonVersion@0
  displayName: Use Python 3.8
  inputs:
    versionSpec: '3.8'
    addToPath: true 
  
  # 安装依赖
- bash: pip3 install -r requirements.txt
  displayName: Install pip package requirements
  workingDirectory: project-requirements

  # 打包需要部署的文件(代码、依赖配置等)
- task: ArchiveFiles@2
  displayName: 'Package ETL files'
  inputs:
    rootFolderOrFile: '$(System.DefaultWorkingDirectory)'
    includeRootFolder: false
    archiveType: 'zip'
    archiveFile: '$(Build.ArtifactStagingDirectory)/etl-deploy-package.zip'
    replaceExistingArchive: true

  # 将打包文件发布为Azure Pipelines制品
- task: PublishBuildArtifacts@1
  displayName: 'Publish deployment artifact'
  inputs:
    PathtoPublish: '$(Build.ArtifactStagingDirectory)/etl-deploy-package.zip'
    ArtifactName: 'etl-artifact'
    publishLocation: 'Container'

说明:

  • ArchiveFiles@2 会将项目根目录下的所有必要文件(src/scripts、project-requirements等)打包为zip
  • PublishBuildArtifacts@1 会将这个zip上传到Azure DevOps的制品库,供后续发布管道调用

第二步:创建独立的发布管道(Release Pipeline)

  1. 新建发布管道:在Azure DevOps中进入「发布」页面,点击「新建管道」,选择「空作业」模板。
  2. 关联构建制品:在「制品」区域点击「添加」,选择你修改后的构建管道作为源,选择刚才发布的etl-artifact作为制品,设置别名(比如ETLArtifact)。
  3. 添加部署步骤:在发布阶段(默认Stage 1)中添加以下任务:
    • 设置Python版本:添加UsePythonVersion@0任务,配置为Python 3.8,与构建管道一致。
    • 解压制品:添加ExtractFiles@2任务,设置解压源为$(Pipeline.Workspace)/ETLArtifact/etl-deploy-package.zip,目标目录设为$(System.DefaultWorkingDirectory)/extracted。
    • 安装依赖:添加Bash任务,运行pip3 install -r requirements.txt,工作目录设置为$(System.DefaultWorkingDirectory)/extracted/project-requirements。
    • 执行部署脚本:添加AzureCLI@2任务,配置与原管道一致,工作目录设为$(System.DefaultWorkingDirectory)/extracted/src/scripts,内联脚本为python etl.py。

关键注意事项

  • 发布管道的Python版本必须与构建管道一致,避免依赖兼容问题。
  • 不要依赖构建管道中安装到Agent的依赖包——因为构建与发布使用的Agent环境是隔离的,必须在发布阶段重新安装依赖。
  • 可以给发布管道添加多阶段(如测试、生产),复用同一个构建制品,保证不同环境的部署一致性。

内容的提问来源于stack exchange,提问作者user19975572

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.15 04:55:18