Дублирование папок при фиксации на Git Репо из Azure DevOps Pipeline - PullRequest
0 голосов
/ 11 апреля 2020

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

Процесс:

enter image description here

  • Создание папки «Решения» в каталоге подготовки артефактов ($ .Build.ArtifactStagingDirectory).

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

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

  • Publi sh Артефакт ($ .Build.ArtifactStagingDirectory)

  • Передача артефакта в Git Репо

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

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

enter image description here

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

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

enter image description here

Поведение при третьем прогоне трубопровода

  • Второй уровень вниз Решение папка найдена и обновлена.
  • Только второй запуск конвейера дублирует папку root. С этого момента он будет находить и обновлять файл в дублируемой папке второго уровня вниз.

enter image description here

Вручную Очистка

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

enter image description here

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

1 Ответ

1 голос
/ 13 апреля 2020

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

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

Я воспроизвел ту же проблему и обнаружил, что это странное поведение произойдет, если ваши файлы будут помещены в одну папку (Solutions ). Если наши файлы находятся в каталоге root с именем 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 команд для выполнения коммита / push / ... Вы можете найти много тем в Интернете, и вот одна из моих связанных проблем .

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

...