Очистить все каталоги сборки в настройках Azure DevOps Pipeline не работает при использовании конфигурации YAML

Я использую Azure DevOps в течение некоторого времени и всегда использую графический интерфейс классического редактора при создании конвейера сборки. Теперь я пытаюсь создать новый конвейер с помощью YAML. Все прошло хорошо, и сборка прошла успешно. Но я заметил другое поведение в задаче оформления заказа по сравнению с конвейером с использованием классического редактора. В обоих конвейерах настройки, используемые на вкладке «Получить источники», одинаковы (см. Снимок экрана ниже).

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

В случае конвейера классического редактора задача проверки Удаляет и воссоздает $(Agent.BuildDirectory). Это приводит к инициализации нового локального репозитория Git для каждой сборки. Но для конвейера YAML задача проверки выполняет только git clean -ffdx и удаляет только исходные каталоги. Как решить эту проблему для конвейеров YAML?

Журнал конвейера YAML:

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

Журнал конвейера классического редактора:

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


person rinesh    schedule 08.05.2020    source источник


Ответы (2)


Установка параметра очистки всех каталогов сборки (на скриншоте ниже) в пользовательском интерфейсе DevOps не работает в случае сборок YAML.

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

Но вы можете указать это в самом файле YAML, используя настройку рабочей области задания. Это работает, как ожидалось.

jobs:
- job: Job1
  workspace:
    clean: all # what to clean up before the job runs - outputs | resources | all
person rinesh    schedule 12.05.2020
comment
Спасибо, что поделились своим решением здесь. Не могли бы вы принять ваше решение в качестве ответа? Таким образом, было бы полезно, чтобы другие участники, столкнувшиеся с той же проблемой, легко нашли решение. Хорошего дня:) - person LoLance; 13.05.2020

Это действительно странно, потому что у меня есть это (в сборке YAML)

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

Я нашел это в документация:

Если для параметра clean установлено значение true, конвейер сборки выполняет отмену любых изменений в $(Build.SourcesDirectory). Более конкретно, следующие команды Git выполняются до выборки источника.

git clean -ffdx
git reset --hard HEAD

У вас включена опция очистки?

person Krzysztof Madej    schedule 08.05.2020
comment
В чем должна быть проблема? Где мне нужно проверить ... в файле YAML или в настройках конвейера ... есть ли у вас какие-либо предложения? - person rinesh; 08.05.2020
comment
Понятия не имею. Я просто создал конвейер, чтобы это проверить. Я не делал ничего особенного, чтобы получить это. Можете ли вы создать новый конвейер и проверить это? Сколько лет вашей организации? - person Krzysztof Madej; 11.05.2020
comment
да. Я проверил с новым конвейером. При первом запуске я получаю эти журналы, и происходит инициализация git. Но со второго запуска задача проверки выполняет только git clean -ffdx. Значит, для каждой сборки не инициализируется новое локальное репо. Это проблема, с которой я столкнулся. - person rinesh; 12.05.2020