Перемещение TFS CI Build def в VSTS - VSTS CI build def получает все и создает все - PullRequest
0 голосов
/ 12 июня 2018

Мы начинаем переносить наши старые определения сборок xaml в определения сборок VSTS на основе веб-технологий.Для каждой ветви у нас есть отладочная сборка def и отладочная сборка def.Отладочная сборка определяется как сборка непрерывной интеграции.В качестве теста я изменил один исходный файл и зарегистрировал его. Старая сборка xaml def проверила файл 1 и, похоже, построила только измененный проект (что мы хотим и ожидаем в сборке CI).В журнале сборки xaml я вижу следующее:

<InformationField Name="Message" Value="1 file(s) were downloaded with a total size of 0.29 MB." />

и сборка запускается за 3,3 минуты.

В новой сборке VSTS - я вижу, что она выполняет команду "tf get /version: 170936 "и получает все файлы с идентификатором набора изменений" 170936 ":

2018-06-12T15:08:39.8409262Z Checking if artifacts directory exists: C:\BuildAgent\agent2\_work\1\a
2018-06-12T15:08:39.8409262Z Deleting artifacts directory.
2018-06-12T15:08:39.8409262Z Creating artifacts directory.
2018-06-12T15:08:39.8564882Z Checking if test results directory exists: C:\BuildAgent\agent2\_work\1\TestResults
2018-06-12T15:08:39.8564882Z Deleting test results directory.
2018-06-12T15:08:39.8564882Z Creating test results directory.
2018-06-12T15:08:39.8877401Z Starting: Get sources
2018-06-12T15:08:39.9033640Z Entering TfvcSourceProvider.PrepareRepositoryAsync
2018-06-12T15:08:39.9033640Z localPath=C:\BuildAgent\agent2\_work\1\s
2018-06-12T15:08:39.9033640Z clean=False
2018-06-12T15:08:39.9033640Z sourceVersion=170936
2018-06-12T15:08:39.9033640Z mappingJson={"mappings":[{"serverPath":"$/Path/To/Branch","mappingType":"map","localPath":"\\"}]}
2018-06-12T15:08:39.9033640Z Syncing repository: Project Name (TFVC)
2018-06-12T15:08:39.9033640Z workspaceName=ws_1_45
2018-06-12T15:09:06.7318304Z Workspace Name: ws_1_45;a6060273-b85e-4d4b-ac63-3fbbcafc308b
2018-06-12T15:09:06.7630780Z tf get /version:170936
2018-06-12T15:09:21.6070136Z Getting C:\BuildAgent\agent2\_work\1\s;C124440
2018-06-12T15:09:21.6070136Z Getting C:\BuildAgent\agent2\_work\1\s;C124440
2018-06-12T15:09:21.6226405Z Getting C:\BuildAgent\agent2\_work\1\s\.nuget;C158533
2018-06-12T15:09:21.6226405Z Getting C:\BuildAgent\agent2\_work\1\s\Build Scripts;C141602
2018-06-12T15:09:21.6226405Z Getting C:\BuildAgent\agent2\_work\1\s\Databases;C124440
~ 
~ The rest of branch...
~

, а затем, кажется, перестраивает все проекты, требующие 13,2 минуты, почти на 10 минут дольше, чем старая сборка xaml.

Я что-то упустил в новой сборке?У меня не проверена кнопка «Очистить» в задаче VS Build.У меня есть переменная build.clean, но по умолчанию она пустая - иногда мы хотим очистить ее, поэтому мы можем просто установить для нее значение «все» во время очереди.

При щелчке в Интернете отображается следующий MS VSTFS.версия: 15.105.25910.0

Любая помощь очень ценится.

1 Ответ

0 голосов
/ 22 июня 2018

Для нескольких агентов сборки, даже если вы не отметили Очистить флажок задачи VS Build, а для параметра очистки в Репозитории установлено значение "false".

ПосколькуАгент выбирается случайным образом, он может не содержать ваш исходный код раньше.Вот почему вы видите, что TFS выполняет tf get /version:170936 и получает все файлы с идентификатором набора изменений "170936", а также создает все проекты.

Для мультиконфигурации на вкладке "Параметры" определения сборки.Пожалуйста, обратитесь к официальной статье: Как построить несколько конфигураций для нескольких платформ?

enter image description here

После этого он разделит конфигурациина несколько сборок во время сборки.

enter image description here

И благодаря тому, что ваше определение сборки успешно строит несколько конфигураций, вы можете пойти дальше и включить параллельные сборкиуменьшить продолжительность / время обратной связи вашей сборки .Вы указываете это как дополнительную опцию на странице Опции : enter image description here

Посмотрите на этот пост Построение нескольких конфигураций и / или платформ в Build2015

Чтобы сузить проблему, связанную с несколькими агентами сборки, вы также можете отправить сборку TFS определенному агенту по требованию и поставить ее в очередь несколько раз с помощью clean=false в том же агенте сборки, он должен был построить только измененный проект (CI).

...