Поделиться через


Определение построения с условным возвратом для проверки изменений

Ситуация, когда разработчик возвращает изменения, делающие построение недопустимым, может привести к существенным проблемам даже в небольших командах. В более крупных командах последствия могут быть еще серьезнее, приводя к потерям производительности и задержкам в расписании.

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

Содержание раздела

  • Использование построений с условным возвратом в работе команды

  • Определение построения с условным возвратом

  • Рекомендации по настройке параметров на вкладке "Процесс"

  • Запуск построения с условным возвратом

    • Автоматический запуск построения с условным возвратом

    • Ручной запуск построения с условным возвратом и частного построения

Использование построений с условным возвратом в работе команды

Если создано построение с условным возвратом, то изменения, отправляемые разработчиком, обязательно будут помещены в набор отложенных изменений и автоматически построены в системе построений. Для завершения возврата построение должно пройти успешно. Дополнительные сведения см. в разделе Возврат ожидающих изменений под управлением построения с условным возвратом.

Если кому-то из пользователей требуется возможность обхода условного возврата, можно задать для разрешения Переопределение проверки возврата по построению соответствующей группы пользователей значение Разрешить. Дополнительные сведения см. в разделе Разрешения Team Foundation Server.

Определение построения с условным возвратом

Необходимые разрешения

Для выполнения данной процедуры необходимо задать для разрешения Редактировать определение построения значение Разрешить. Дополнительные сведения см. в разделе Разрешения Team Foundation Server.

Определение построения с условным возвратом

  1. В Сред. Командный обозреватель щелкните командный проект.

  2. В меню Построение выберите Новое определение построения.

    Откроется окно Определение нового построения, где будет отображена вкладка Общие.

  3. В поле Имя определения построения введите имя.

  4. На вкладке Триггер установите флажок Условный возврат – возвраты принимаются лишь в случае успешного слияния и построения отправляемых изменений.

  5. Нажмите на вкладку Рабочая область.

    Появится таблица Рабочие папки. В этой таблице показано сопоставление папок системы управления версиями, контролируемых определением построения, с локальными папками на агенте построения. Дополнительные сведения см. в разделе Удаление завершенного построения.

    Совет

    Убедитесь, что заданная в данном определении папка системы управления версиями не указывается одновременно с этим на вкладке Рабочая область любого другого определения построения с условным возвратом.В противном случае при возврате файлов в эти папки система предложит выбрать, какое определение построения следует поставить в очередь.

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

    В объемной базе кода, формируемой крупной командой, следует соблюсти баланс между проверкой качества кода и отсутствием лишних задержек в разработке. Дополнительные сведения см. далее в этом разделе в подразделе Рекомендации по настройке параметров на вкладке "Процесс".

  7. Поочередно открыв вкладки Параметры построения по умолчанию и Политика сохранения, задайте необходимые параметры.

    Дополнительные сведения см. в разделе Создание базового определения построения.

Рекомендации по настройке параметров на вкладке "Процесс"

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

Обязательный узел

  • Элементы для построения, Конфигурации для построения. Если оставить этот параметр пустым, для всех решений и проектов будут использованы платформа и конфигурация по умолчанию. Для оптимизации производительности придерживайтесь следующих рекомендаций:

    • если пара платформа-конфигурация строится быстрее, чем другие пары, следует указать ее в значении данного параметра;

    • укажите как можно меньше пар платформа-значение.

Основной узел

  • Автоматические тесты. Если корректность кода требует прохождения нескольких тестов, настройте тестовый запуск на запуск этих тестов. При настройке тестового запуска убедитесь, что тесты фильтруются по категории и приоритету, и таким образом выполняются только самые необходимые тесты. Дополнительные сведения см. в разделе Определение построения с помощью шаблона по умолчанию.

  • Очистка рабочей области. Задайте для этого параметра значение Нет (рекомендуется) или Выходные элементы. Следует заметить, что при отмене очистки рабочей области повышается вероятность пропуска дефектов кода некоторых типов. Дополнительные сведения см. в разделе Определение построения с помощью шаблона по умолчанию.

  • Выполнить анализ кода: задайте для этого параметра значение Никогда.

  • Параметры исходного кода и сервера символов, Индексация источников. Задайте для этого параметра значение False.

Дополнительный узел

  • Параметры агента

    • Фильтр имен или Фильтр тегов. Используйте имя или тег агента построения для привязки этого определения построения к агенту построения, специально предназначенному для запуска этого построения. Агент построения должен запускаться на компьютере построения, мощности оборудования которого хватает для оперативной обработки построения в соответствии с ожидаемой производительностью команды.

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

    • Максимальное время выполнения: задайте для этого параметра разумно приемлемое время ожидания непрерывного интегрированного построения. К примеру, 15 минут могут не представлять для команды никакой проблемы, а восемь часов — уже слишком много.

  • Копировать файлы вывода в транзитный каталог. Система получает это значение как False, даже если вы задали значение True.

  • Создать рабочий элемент при ошибке. Система получает это значение как False, даже если вы задали значение True.

  • Пометка источников: задайте для этого параметра значение Ложь.

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

Запуск построения с условным возвратом

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

  • Выделите отдельный мощный компьютер (например, с быстрым процессором и жестким диском) для агента построения, который используется определением построения с условным возвратом.

  • Определите построение так, чтобы агент построения выполнял только работу, необходимую для проверки качества возвращаемого кода. Дополнительные сведения см. ранее в этом разделе в подразделе Рекомендации по настройке параметров на вкладке "Процесс".

Построение с условным возвратом может запускаться как автоматически, так и вручную.

Автоматический запуск построения с условным возвратом

Построение с условным возвратом запускается автоматически при соблюдении любого из следующих условий:

  • при определении построения установлен флажок Условный возврат на вкладке Триггер;

  • кто-либо пытается вернуть одно или несколько изменений, пересекающихся с одной из сопоставленных папок на вкладке Рабочая область в определении построения.

Ручной запуск построения с условным возвратом и частного построения

Если разработчик хочет большей уверенности относительно возвращаемых им изменений, он может вручную поставить в очередь построение набора отложенных изменений. При использовании этого подхода, если построение пройдет успешно, система будет действовать различным образом в зависимости от того, какой из двух параметров выбран.

  • Система возвращает изменения (ручное построение с условным возвратом). Этот параметр может быть полезен для разработчика, который хочет проверить свой код до возврата, но работает в команде, которая не использует триггер построения с условным возвратом.

  • Система не возвращает изменения (закрытое построение). Разработчик может использовать этот параметр, если необходимо проверить некоторые изменения в наборе отложенных изменений, но не возвращать их код.

Дополнительные сведения см. в разделе Помещение построения в очередь.