#azure-devops #build-server
#azure-devops #сборка-сервер
Вопрос:
Я новичок в использовании сборок / конвейеров Azure DevOps, поскольку исходный код для решений, которые мне нужно создать, находится в TFVC, я ограничен использованием классических сборок (т. Е. пользовательского интерфейса), а не YAML.
Когда я хочу протестировать изменения в определении сборки, мне иногда хочется запустить чистую сборку, то есть убедиться, что исходные тексты и артефакты из предыдущих сборок удалены перед запуском новой сборки, но обычные сборки (то есть те, которые запускаются изменениями в TFVC) должны быть инкрементными, чтобы ускорить сборки.
Я привык к TeamCity, который имеет множество опций в отношении управления исходным кодом и сохранением артефактов между сборками, включая простой флажок «очистить» при запуске сборки вручную. Сборки ADO кажутся очень ограниченными в этом отношении, и если я хочу иметь чистую сборку, кажется, единственный вариант — изменить определение сборки, выбрать очистить, запустить сборку, затем снова изменить определение сборки, чтобы удалить опцию очистки.
Существуют ли лучшие способы управления «одноранговыми» чистыми исходными текстами и артефактами в сборках ADO?
Ответ №1:
Эти настройки либо включены, либо выключены. Они не будут принимать условные переменные времени выполнения.
При этом вы могли бы попробовать использовать опцию «Сохранить как черновик». Похоже, это создает ЧЕРНОВОЕ определение конвейера, которое вы могли бы выполнить для своих изменений.
Вероятно, вы могли бы просто вернуть его обратно в режим no clean перед публикацией. На самом деле я не использую эту функцию, но я собираюсь предположить, что на серверной части она использует другой идентификатор временного определения. Вероятно, это будет означать, что в агенте сборки создается новая папка в _work . Если это так, вам, вероятно, даже не нужно будет переворачивать чистые исходные тексты, поскольку при первом запуске они не будут существовать. Это также, вероятно, означает, что если это автономный агент, вы удвоите размер рабочей папки, и вам, возможно, придется управлять этой очисткой после того, как вы закончите.
Если при этом создается вторая рабочая папка, это, вероятно, предпочтительнее, поскольку это означает, что вы не будете прерывать инкрементную сборку сборки непосредственно после вашего теста с помощью clean. Независимо от того, сделали ли вы это разово или путем редактирования определения сборки.
Ответ №2:
Строить.Переменная Clean устарела, вы можете использовать опцию Clean только для очистки локального репозитория на агенте в данный момент.
Я хотел бы предложить вам отправить голос пользователя на веб-сайте ниже, команда разработчиков тщательно его оценит:
https://developercommunity.visualstudio.com/content/idea/post.html?space=21
Одним из обходных путей является добавление задачи очистки после сборки в конце вашего конвейера, когда вы хотите запускать сборки постепенно, вы можете отключить эту задачу.
Комментарии:
1. Вы проверили мой ответ? Полезно ли это?