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

如何编写YAML流水线实现master和adf_publish分支分别发布构建产物

多分支独立构建产物YAML流水线配置方案

核心配置逻辑

  • 构建阶段拆分两个独立作业,分别显式指定检出对应分支代码,避免默认只检出触发分支的问题
  • 两个作业生成的产物命名独立区分,不会出现互相覆盖或内容混淆的情况
  • 部署阶段可直接通过产物名引用对应分支的构建结果,不需要额外拉取分支代码

完整YAML示例

# 触发分支可根据实际需求调整
trigger:
  - master
  - adf_publish

stages:
# 构建阶段
- stage: Build
  displayName: 多分支并行构建
  jobs:
  # master分支构建作业
  - job: Build_Master
    pool:
      vmImage: 'ubuntu-latest'
    steps:
    # 强制检出master分支代码,clean参数确保工作目录无残留文件
    - checkout: self
      ref: 'refs/heads/master'
      clean: true

    # 此处替换为你自己的master分支构建逻辑,比如编译、打包、静态检查等
    - script: |
        echo "当前检出分支为:$(Build.SourceBranchName)"
        # 示例:将构建结果输出到构件暂存目录
        cp ./* $(Build.ArtifactStagingDirectory)/ -r
      displayName: 执行Master分支构建逻辑

    # 发布master分支专属产物
    - publish: $(Build.ArtifactStagingDirectory)
      artifact: drop-master
      displayName: 发布Master分支构建产物

  # adf_publish分支构建作业
  - job: Build_ADFPublish
    pool:
      vmImage: 'ubuntu-latest'
    steps:
    # 强制检出adf_publish分支代码
    - checkout: self
      ref: 'refs/heads/adf_publish'
      clean: true

    # 此处替换为你自己的adf_publish分支构建逻辑
    - script: |
        echo "当前检出分支为:$(Build.SourceBranchName)"
        cp ./* $(Build.ArtifactStagingDirectory)/ -r
      displayName: 执行adf_publish分支构建逻辑

    # 发布adf_publish分支专属产物
    - publish: $(Build.ArtifactStagingDirectory)
      artifact: drop-adf_publish
      displayName: 发布adf_publish分支构建产物

# 部署阶段示例
- stage: Deploy
  displayName: 部署构建产物
  dependsOn: Build
  jobs:
  # 部署master分支产物
  - deployment: Deploy_Master
    environment: '你的部署环境名'
    pool:
      vmImage: 'ubuntu-latest'
    strategy:
      runOnce:
        deploy:
          steps:
          # 下载master分支对应的构建产物
          - download: current
            artifact: drop-master

          # 此处替换为你自己的部署逻辑,直接使用$(Pipeline.Workspace)/drop-master下的文件即可
          - script: echo "基于Master分支产物执行部署"
            displayName: 部署Master分支产物

  # 部署adf_publish分支产物
  - deployment: Deploy_ADFPublish
    environment: '你的部署环境名'
    pool:
      vmImage: 'ubuntu-latest'
    strategy:
      runOnce:
        deploy:
          steps:
          # 下载adf_publish分支对应的构建产物
          - download: current
            artifact: drop-adf_publish

          # 此处替换为你自己的部署逻辑,直接使用$(Pipeline.Workspace)/drop-adf_publish下的文件即可
          - script: echo "基于adf_publish分支产物执行部署"
            displayName: 部署adf_publish分支产物

注意:如果你的流水线关联了多个代码仓库,将checkout步骤中的self替换为对应仓库的资源名即可;如果两个分支的构建逻辑完全一致,也可以将公共逻辑抽成模板复用,减少重复代码。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 22:18:01