从 Azure DevOps 管道提交到 Git Repo 时文件夹重复
Duplication of folders when committing to Git Repo from Azure DevOps Pipeline
下面概述的过程经过简化以演示我面临的问题。
进程:
在工件暂存目录中创建“解决方案”文件夹
($.Build.ArtifactStagingDirectory)。
安装所需工具
将 .zip 包从 Dynamics 365 源系统导出到工件目录中的“解决方案”文件夹
($.Build.ArtifactStagingDirectory\Solutions)
发布工件 ($.Build.ArtifactStagingDirectory)
将工件提交到 Git 存储库
管道第一个 运行 的行为
- 观察到正确的文件夹结构。
第二个 运行 管道的行为
- 根文件夹重复
第三个 运行 管道的行为
- 已找到并更新下二级解决方案文件夹。
- 只有管道的第二个 运行 复制了
根文件夹。从这里开始,它将在
重复,第二层,文件夹。
手动清理
- 我可以删除顶级解决方案文件夹中的内容以提供
我这个结构——看起来更干净。不过,这并不理想,因为有一个没有内容的不必要的 Solutions 文件夹。
为什么文件夹在管道的第二个 运行 上重复,是否有办法阻止它?
Why is the folder duplicated on the second run of the pipeline, and is
there anyway to stop this?
您遇到的行为与 Azure Devops 服务扩展中的 Commit to Git task
有关:Backup data during build or release。
我重现了同样的问题,发现如果您的文件放在一个文件夹中 (Solutions
),就会发生这种奇怪的行为。如果我们的文件在 Path
的根目录下,覆盖同名的旧文件效果很好。
回答你原来的问题:
1.The原因why the folder is duplicated on the second run
与任务本身的设计有关,与Azure Devops Service无关。
2.And 阻止这种情况的唯一方法是将 xx.zip
直接 放在路径 ($.Build.ArtifactStagingDirectory)
中,而不是创建 Solutions
文件夹。另外,您可以尝试打开 issue here 来联系此扩展的作者。我想如果作者得到你的反馈,他会考虑修改扩展。
另外:
虽然使用git相关任务很容易做一些git动作,但我建议你也可以考虑使用CMD/PS任务来使用git命令来做 commit/push/... 你可以在网上找到很多主题,这是我的一个 .
希望对您有所帮助:)
下面概述的过程经过简化以演示我面临的问题。
进程:
在工件暂存目录中创建“解决方案”文件夹 ($.Build.ArtifactStagingDirectory)。
安装所需工具
将 .zip 包从 Dynamics 365 源系统导出到工件目录中的“解决方案”文件夹 ($.Build.ArtifactStagingDirectory\Solutions)
发布工件 ($.Build.ArtifactStagingDirectory)
将工件提交到 Git 存储库
管道第一个 运行 的行为
- 观察到正确的文件夹结构。
第二个 运行 管道的行为
- 根文件夹重复
第三个 运行 管道的行为
- 已找到并更新下二级解决方案文件夹。
- 只有管道的第二个 运行 复制了 根文件夹。从这里开始,它将在 重复,第二层,文件夹。
手动清理
- 我可以删除顶级解决方案文件夹中的内容以提供 我这个结构——看起来更干净。不过,这并不理想,因为有一个没有内容的不必要的 Solutions 文件夹。
为什么文件夹在管道的第二个 运行 上重复,是否有办法阻止它?
Why is the folder duplicated on the second run of the pipeline, and is there anyway to stop this?
您遇到的行为与 Azure Devops 服务扩展中的 Commit to Git task
有关:Backup data during build or release。
我重现了同样的问题,发现如果您的文件放在一个文件夹中 (Solutions
),就会发生这种奇怪的行为。如果我们的文件在 Path
的根目录下,覆盖同名的旧文件效果很好。
回答你原来的问题:
1.The原因why the folder is duplicated on the second run
与任务本身的设计有关,与Azure Devops Service无关。
2.And 阻止这种情况的唯一方法是将 xx.zip
直接 放在路径 ($.Build.ArtifactStagingDirectory)
中,而不是创建 Solutions
文件夹。另外,您可以尝试打开 issue here 来联系此扩展的作者。我想如果作者得到你的反馈,他会考虑修改扩展。
另外:
虽然使用git相关任务很容易做一些git动作,但我建议你也可以考虑使用CMD/PS任务来使用git命令来做 commit/push/... 你可以在网上找到很多主题,这是我的一个
希望对您有所帮助:)