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

Azure DevOps ArchiveFiles@2任务:如何归档其他仓库文件至同一ZIP

实现方案:将另一个Azure DevOps仓库文件加入归档包

完全可以通过Azure DevOps流水线任务实现,具体步骤如下:

1. 拉取第二个Azure DevOps仓库

默认流水线仅会拉取当前YAML文件所在的仓库,需添加checkout任务拉取目标仓库到流水线工作目录:

- checkout: git://<你的项目名称>/<第二个仓库名称>@<目标分支>
  path: 's/second-repo' # 指定拉取路径,避免与主仓库文件冲突

2. 调整归档任务包含双仓库文件

有两种方式实现归档合并:

方式一:直接指定多路径归档

修改原ArchiveFiles@2任务的rootFolderOrFile参数,同时包含主仓库与第二个仓库的路径:

- task: ArchiveFiles@2
  displayName: "terraform file archive"
  inputs:
    rootFolderOrFile: |
      $(Build.Repository.LocalPath)
      $(Build.SourcesDirectory)/second-repo # 对应checkout任务指定的路径
    includeRootFolder: false
    archiveType: zip
    archiveFile: $(Build.ArtifactStagingDirectory)/archive.zip
    replaceExistingArchive: true
    verbose: true

方式二:先合并文件再归档

若需要将两个仓库的文件放在归档包的同一层级(无仓库路径区分),可先通过CopyFiles任务将文件合并到临时目录,再归档:

# 创建临时合并目录
- script: mkdir $(Build.SourcesDirectory)/combined-files
  displayName: "Create combined files directory"

# 复制主仓库文件到合并目录
- task: CopyFiles@2
  displayName: "Copy main repository files"
  inputs:
    SourceFolder: $(Build.Repository.LocalPath)
    Contents: '**'
    TargetFolder: $(Build.SourcesDirectory)/combined-files

# 复制第二个仓库文件到合并目录
- task: CopyFiles@2
  displayName: "Copy second repository files"
  inputs:
    SourceFolder: $(Build.SourcesDirectory)/second-repo
    Contents: '**'
    TargetFolder: $(Build.SourcesDirectory)/combined-files

# 归档合并后的文件
- task: ArchiveFiles@2
  displayName: "terraform file archive"
  inputs:
    rootFolderOrFile: $(Build.SourcesDirectory)/combined-files
    includeRootFolder: false
    archiveType: zip
    archiveFile: $(Build.ArtifactStagingDirectory)/archive.zip
    replaceExistingArchive: true
    verbose: true

注意事项

  • 确保流水线使用的服务账号拥有第二个Azure DevOps仓库的读取权限,否则无法拉取文件。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.09 17:35:27