从Azure DevOps管道提交到Git Repo时文件夹的重复

问题描述 投票:0回答:1

下面概述的过程经过简化,以展示我所面临的问题。

Process:

enter image description here

  • 在工件暂存目录中创建“ Solutions”文件夹($ .Build.ArtifactStagingDirectory)。

  • [安装必需的工具

  • 将Dynamics 365源系统中的.zip软件包导出到工件目录中的“ Solutions”文件夹中($ .Build.ArtifactStagingDirectory \ Solutions)

  • Publish Artifact($ .Build.ArtifactStagingDirectory)

  • 将工件提交到Git回购

管道的首次运行行为

  • 观察到正确的文件夹结构。

enter image description here

管道第二次运行的行为

  • 根文件夹的复制

enter image description here

管道第三行的行为​​

  • 找到并更新了第二级解决方案文件夹。
  • 仅是管道的第二次运行才能复制根文件夹。从这里开始,它将在重复,第二级向下,文件夹。

enter image description here

手动清理

  • 我可以删除顶级解决方案文件夹中的内容我这个结构-看起来更干净。但是,由于存在没有内容的不必要的Solutions文件夹,因此这还是不理想的。

enter image description here

为什么文件夹在管道的第二次运行中重复出现,并且是否有阻止它的方法?

git azure-devops azure-pipelines dynamics-365 azure-pipelines-release-task
1个回答
1
投票

为什么文件夹在管道的第二次运行中重复,并且是反正有阻止它吗?

您遇到的行为与Azure Devops Service扩展名Commit to Git task中的Backup data during build or release有关。

我重现了同样的问题,发现如果将文件放在一个文件夹(Solutions)中,则会发生这种奇怪的行为。如果我们的文件位于Path的根目录中,则可以很好地覆盖具有相同名称的旧文件。

要回答您的原始问题:

1。原因why the folder is duplicated on the second run与任务本身的设计有关,而不与Azure Devops Service有关。

2。停止此操作的唯一方法是将xx.zip 直接放置在路径($.Build.ArtifactStagingDirectory)中,而不是创建Solutions文件夹。另外,您可以尝试打开问题here与该扩展程序的作者联系。我想作者如果得到您的反馈,会考虑修改扩展名。

另外:

尽管使用git相关任务很容易执行一些git操作,但我建议您也可以考虑使用CMD / PS任务来使用git命令来执行commit / push /...。您可以在线找到许多主题,我的related issue之一。

希望有帮助:)

© www.soinside.com 2019 - 2024. All rights reserved.