簡體   English   中英

從 Azure DevOps Pipeline 提交到 Git Repo 時文件夾重復

[英]Duplication of folders when committing to Git Repo from Azure DevOps Pipeline

下面概述的過程被簡化以演示我面臨的問題。

過程:

在此處輸入圖像描述

  • 在工件暫存目錄 ($.Build.ArtifactStagingDirectory) 中創建“解決方案”文件夾。

  • 安裝所需工具

  • Export.zip package 從 Dynamics 365 源系統到工件目錄中的“解決方案”文件夾 ($.Build.ArtifactStagingDirectory\Solutions)

  • 發布工件 ($.Build.ArtifactStagingDirectory)

  • 將工件提交到 Git 存儲庫

管道首次運行時的行為

  • 觀察到正確的文件夾結構。

在此處輸入圖像描述

第二次運行管道時的行為

  • 根文件夾的復制

在此處輸入圖像描述

第三次運行管道的行為

  • 找到並更新了第二級解決方案文件夾。
  • 它只是復制根文件夾的管道的第二次運行。 從這里開始,它將在重復的第二級文件夾中查找並更新文件。

在此處輸入圖像描述

手動清理

  • 我可以刪除頂級解決方案文件夾的內容,以給我這個結構——看起來更干凈。 盡管如此,這並不理想,因為有一個沒有內容的不必要的解決方案文件夾。

在此處輸入圖像描述

為什么該文件夾在管道的第二次運行時重復,並且無論如何要阻止它?

為什么該文件夾在管道的第二次運行時重復,並且無論如何要阻止它?

您遇到的行為與來自 Azure Devops Service extension: Backup data during build or releaseCommit to Git task有關。

我重現了同樣的問題,發現如果您的文件放在一個文件夾( Solutions )中,就會發生這種奇怪的行為。 如果我們的文件位於Path的根目錄中,則可以很好地覆蓋具有相同名稱的舊文件。

要回答您的原始問題:

1. why the folder is duplicated on the second run原因與任務本身的設計有關,而不是Azure Devops Service。

2.阻止這種情況的唯一方法是將您的xx.zip直接放在路徑($.Build.ArtifactStagingDirectory)中,而不是創建Solutions文件夾。 此外,您可以嘗試在此處打開問題以聯系此擴展程序的作者。 我猜如果作者得到您的反饋,他會考慮修改擴展。

此外:

雖然使用 git 相關的任務很容易做一些 git 動作,但我建議你也可以考慮使用 CMD/PS 任務來使用 git 命令來執行提交/推送/......你可以在網上找到很多主題,這里是其中之一我的相關問題

希望能幫助到你:)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM