Дублирование папок при фиксации в Git Repo из Azure DevOps Pipeline

Описанный ниже процесс упрощен, чтобы продемонстрировать проблему, с которой я столкнулся.

Процесс:

введите здесь описание изображения

  • Создайте папку «Solutions» в промежуточном каталоге артефактов ($ .Build.ArtifactStagingDirectory).

  • Установите необходимые инструменты

  • Экспорт .zip-пакета из исходной системы Dynamics 365 в папку «Решения» в каталоге артефактов ($ .Build.ArtifactStagingDirectory \ Solutions)

  • Опубликовать артефакт ($ .Build.ArtifactStagingDirectory)

  • Зафиксировать артефакт в репозитории Git

Поведение при первом запуске конвейера

  • Соблюдается правильная структура папок.

введите здесь описание изображения

Поведение при втором запуске конвейера

  • Дублирование корневой папки

введите здесь описание изображения

Поведение на третьем этапе конвейера

  • На втором уровне ниже находится и обновляется папка решения.
  • Это только второй запуск конвейера, который дублирует корневую папку. С этого момента он найдет и обновит файл в дублированной папке на втором уровне ниже.

введите здесь описание изображения

Ручная очистка

  • Я могу удалить содержимое папки решений верхнего уровня, чтобы получить эту структуру, которая выглядит чище. Тем не менее, это не идеально, учитывая, что есть ненужная папка Solutions без содержимого.

введите здесь описание изображения

Почему папка дублируется при втором запуске конвейера и есть ли способ остановить это?


person soziblewuup    schedule 11.04.2020    source источник


Ответы (1)


Почему папка дублируется при втором запуске конвейера и есть ли способ остановить это?

Поведение, с которым вы столкнулись, как-то связано с Commit to Git task из расширения службы Azure Devops: Резервное копирование данных во время сборки или выпуска.

Я воспроизвел ту же проблему и обнаружил, что это странное поведение произойдет, если ваши файлы будут помещены в одну папку (Solutions). Если наши файлы находятся в корневом каталоге Path, можно заменить старые файлы с такими же именами.

Чтобы ответить на ваш исходный вопрос:

1. Причина why the folder is duplicated on the second run связана с дизайном самой задачи, а не со службой Azure Devops.

2. И единственный способ остановить это - поместить ваш xx.zip непосредственно в путь ($.Build.ArtifactStagingDirectory) вместо создания Solutions папки. Кроме того, вы можете попробовать открыть проблему здесь, чтобы связаться с автором этого расширения. Я предполагаю, что автор рассмотрит возможность модификации расширения, если он получит ваш отзыв.

Дополнительно:

Хотя с помощью задач, связанных с git, очень легко выполнять некоторые действия с git, я предлагаю вам также рассмотреть возможность использования задачи CMD / PS для использования команд git для выполнения commit / push / ... Вы можете найти много тем в Интернете, и вот один из моя связанная с этим проблема.

Надеюсь, это поможет :)

person LoLance    schedule 13.04.2020