Настройка рабочего процесса Lab Management
Сквозной рабочий процесс среды Visual Studio Lab Management позволяет автоматизировать создание приложений, развертывание нового построения в виртуальной среде и тестирование в новом построении. Шаблон LabDefaultTemplate содержит шаблон рабочего процесса по умолчанию, который можно незамедлительно использовать. Сведения об использовании LabDefaultTemplate см. в разделе Практическое руководство. Развертывание приложения в виртуальной среде. Однако процессы создания, развертывания и тестирования могут отличаться друг от друга вследствие разных требований. Например, для одного рабочего процесса может потребоваться копирование двоичных файлов теста из расположения обычного построения, тогда как для другого процесса необходимо копирование двоичных файлов теста из временного расположения. Или же для одного рабочего процесса может потребоваться сохранение среды в библиотеке для каждого инженера-испытателя, из которой она будет развертываться, тогда как в случае другого потока сохранение среды не требуется. Поскольку шаблон рабочего процесса по умолчанию основан на рабочем процессе Windows версии 4.0, он полностью расширяемый и настраиваемый, поэтому LabDefaultTemplate можно настроить в соответствии с конкретными требованиями.
В этой теме представлены общие шаги по настройке шаблона рабочего процесса, а также пять примеров сценариев, для которых настройка наиболее полезна.
Указание расположения двоичных файлов теста, отличного от расположения построения.
Поддержка развертываний приложений, требующих перезагрузки после установки.
Чтение файлов системы управления версиями.
Доступ к расположению сброса построения с помощью учетной записи агента построения.
Доступ к другим расположениям с помощью учетной записи службы лаборатории.
Основные понятия настройки рабочего процесса
Для настройки рабочего процесса необходимо знать три ключевых понятия.
Шаблон. Шаблон определяет последовательность действий или шагов, входящих в рабочий процесс. Шаблон основан на Windows Workflow Foundation 4.0 и хранится в виде XAML-файла в системе управления версиями. Чтобы загрузить шаблон в редактор рабочих процессов, дважды щелкните XAML-файл. В редакторе будут показаны различные действия и последствия, характерные для рабочего процесса. Для программирования шаблона можно использовать переменные с различными областями действия, условную логику, циклы и так далее — аналогично любому другому языку программирования. Windows Workflow Foundation позволяет настраивать шаблон лаборатории по умолчанию в зависимости от конкретных потребностей.
Действия. Действие представляет собой стандартный блок рабочего процесса, и шаблон лаборатории по умолчанию использует множество действий. Дополнительные действия указаны на панели инструментов под заголовком Действия Team Foundation Lab Management. Чтобы использовать действие в рабочем процессе, перетащите его с панели инструментов в редактор рабочих процессов Visual Studio, в соответствующее расположение в шаблоне. Входные и выходные параметры можно определить, если просмотреть свойства действия. Дополнительные сведения о каждом действии Lab Management см. в разделе Действия Team Foundation Lab Management. Если входящих в продукт действий недостаточно для удовлетворения требований, можно добавить новые действия.
Аргументы. Предусмотрена возможность создания новых входных аргументов для входных данных, которые необходимо получить от пользователей, и передачи этих значений действиям. Чтобы просмотреть существующие аргументы, перейдите на вкладку Аргументы в нижней части окна редактора рабочих процессов. После создания нового аргумента он появится в разделе Параметры процесса построения на вкладке Процесс в определении построения.
Помните об этих основных понятиях по мере рассмотрения следующих двух примеров, в которых требуется настройка. В первом примере рассмотрен способ изменения входного аргумента существующего действия в шаблоне, а во втором — способ добавления новых действий с панели инструментов. В этих примерах достаточно информации для настройки LabDefaultTemplate в соответствии с конкретными требованиями.
Перед началом настройки
Перед началом настройки шаблона рабочего процесса LabDefaultTemplate следует выполнить общие действия. Они показаны на следующей схеме.
Подготовка к настройке
В Сред. Командный обозреватель дважды щелкните узел Система управления версиями для командного проекта.
В обозревателе управления исходным кодом разверните дерево системы управления версиями и найдите папку $/<Project_Name>/BuildProcessTemplates.
Сопоставьте эту папку с локальной папкой (например, C:\Sources).
Щелкните правой кнопкой мыши файл LabDefaultTemplate.xaml и выберите пункт Получить последнюю версию.
Сделайте копию файла LabDefaultTemplate.xaml и присвойте ему новое имя (например, LabDefaultTemplate_customize.xaml).
Добавьте этот новый файл в систему управления версиями.
Дважды щелкните этот новый файл. Файл откроется в редакторе рабочих процессов Visual Studio.
После этого осуществляется настройка сделанной копии шаблона рабочего процесса по умолчанию.
Указание расположения двоичных файлов теста, отличного от расположения сброса построения
Шаблон рабочего процесса по умолчанию LabDefaultTemplate полагает, что расположение двоичных файлов теста аналогично расположению, в которое сбрасываются построения. Однако в этой ситуации тестовый код может и не быть создан наряду с кодом продукта. В таком случае, возможно, потребуется настроить шаблон, чтобы двоичные файлы теста забирались из другого расположения. Такая настройка осуществляется за три шага, как показано на рисунке ниже.
Определение входного аргумента рабочего процесса для указания пути к двоичным файлам теста
Определение входного аргумента
Перейдите на вкладку Аргументы в нижней части окна редактора рабочих процессов.
Нажмите кнопку Создать аргумент. Введите в текстовое поле имя аргумента, например TestBinariesLocation. В раскрывающемся списке Направление выберите Вход. В раскрывающемся списке Тип аргумента выберите Строка.
Передача значения аргумента действию ExecuteRemoteTestRun
Это действие выполняет удаленный тестовый запуск, ждет его окончания и обновляет сведения о построении в соответствии со статистикой тестового запуска.
Передача значения аргумента
В редакторе рабочих процессов перейдите к действию Запущенные тесты. Несмотря на то что отображаемое имя этого действия "Запущенные тесты", тип действия — ExecuteRemoteTestRun.
Щелкните правой кнопкой мыши действие и выберите пункт Свойства. Откроется окно Свойства в правом нижнем углу, в котором будут показаны входные и выходные аргументы этого действия. Одним из входных аргументов этого действия является TestDirectory, который задает путь расположения двоичных файлов теста.
В окне Свойства выберите TestDirectory. В конце строки нажмите кнопку с многоточием (...).
В редакторе выражений введите "TestBinariesLocation" (без кавычек) и нажмите кнопку ОК.
В меню Файл выберите пункт Сохранить LabDefaultTemplate_customize.xaml.
В строке меню обозревателя управления исходным кодом нажмите Возврат.
Теперь для создания новых определений построения можно использовать настроенный XAML-файл. Новый входной аргумент TestBinariesLocation появится в разделе Прочее на вкладке Процесс в определении построения, где можно задать значение.
Настройка поддержки установщиков приложений, требующих перезагрузки компьютера после развертывания
Шаблон рабочего процесса по умолчанию LabDefaultTemplate не перезапускает виртуальную среду после развертывания приложения. Возможно, потребуется настроить шаблон, чтобы он поддерживал приложения, для которых может требоваться перезагрузка после развертывания. Если приложение было развернуто в виртуальной среде вручную, потребуется перезагрузка только виртуальной машины, на которой было установлено приложение. Visual Studio Lab Management не поддерживает операции на отдельных виртуальных машинах в среде. Следовательно, для перезагрузки компьютера необходима перезагрузка всех машин в виртуальной среде.
Предупреждение
Убедитесь, что скрипт развертывания ни при каких условиях не перезапускает виртуальную машину.Если это все же произойдет, агент построения, выполняющий скрипт развертывания, потеряет связь с контроллером построения и рабочий процесс может остановиться.
Для перезапуска виртуальных машин после развертывания нового построения необходимо добавить три действия в LabDefaultTemplate.
Остановка среды
Запуск среды
Ожидание запуска виртуальных машин перед продолжением остальной части рабочего процесса.
Остановка среды
Чтобы добавить действие по остановке среды в шаблон рабочего процесса по умолчанию, можно перетащить действие StopLabEnvironment с панели инструментов в шаблон рабочего процесса и инициализировать переменные действия.
Остановка среды
В редакторе рабочих процессов перейдите к действию с отображаемым именем Успешное развертывание приложения.
В меню Вид выберите пункт Панель элементов. После этого в левой части откроется панель инструментов и будет показан список Действия Team Foundation Build. Найдите в списке Действия Team Foundation Lab Management.
На панели инструментов выберите действие StopLabEnvironment. Перетащите его в редактор рабочих процессов и разместите перед действием Успешное развертывание приложения.
Щелкните правой кнопкой мыши действие и выберите пункт Свойства. В окне свойства будут показаны входные и выходные аргументы этого действия. Обратите внимание, что рабочий процесс имеет переменную с именем LabEnvironmentUri, которая относится к URI среды.
Перейдите на вкладку Переменные. Отобразится список переменных.
В строке LabEnvironmentUri, под столбцом По умолчанию дважды щелкните Введите выражение VB. В текстовом поле введите LabEnvironmentUri. Редактор покажет все существующие варианты использования параметра, и вместо ввода значения его можно выбрать в списке.
Запуск среды
Чтобы добавить действие по запуску среды в шаблон рабочего процесса по умолчанию, можно перетащить действие StartLabEnvironment с панели инструментов в шаблон рабочего процесса и инициализировать переменные действия.
Запуск среды
На панели инструментов выберите действие StartLabEnvironment. Перетащите его в редактор рабочих процессов и разместите перед действием Успешное развертывание приложения, но после действия StopLabEnvironment.
Щелкните правой кнопкой мыши действие и выберите пункт Свойства. В окне свойства будут показаны входные и выходные аргументы этого действия. Снова обратите внимание, что рабочий процесс имеет переменную с именем LabEnvironmentUri, которая относится к URI среды.
Перейдите на вкладку Переменные. Отобразится список переменных.
В строке LabEnvironmentUri, под столбцом По умолчанию дважды щелкните Введите выражение VB. В текстовом поле введите LabEnvironmentUri. Редактор покажет все существующие варианты использования параметра, и вместо ввода значения его можно выбрать в списке.
Ожидание перезапуска виртуальных машин перед продолжением остальной части рабочего процесса
Чтобы добавить время ожидания перед запуском виртуальных машин, можно перетащить действие Задержка с панели инструментов в шаблон рабочего процесса и инициализировать переменные действия. Это действие находится на вкладке Примитивы на панели инструментов.
Ожидание запуска виртуальных машин
На панели инструментов перейдите на вкладку Примитивы.
Щелкните действие Задержка. Перетащите его в редактор рабочих процессов и разместите перед действием Успешное развертывание приложения, но после действия StartLabEnvironment.
Щелкните правой кнопкой мыши действие и выберите пункт Свойства. В окне свойства будут показаны входные и выходные аргументы этого действия. Обратите внимание, что рабочий процесс имеет переменную с именем Duration, которая относится к времени ожидания.
В окне Свойства выберите Длительность и нажмите кнопку с многоточием (…).
В редакторе выражений введите время ожидания (например, 10 минут) в формате TimeSpan.FromMinutes(10).
После изменения этого шаблона верните его в систему управления версиями и используйте его для создания нового определения построения, чтобы разворачивать приложения, требующие перезагрузки после установки.
Настройка чтения файлов системы управления версиями
При создании настраиваемых действий и последующем их использовании в шаблоне рабочего процесса убедитесь, что агент построения, осуществляющий связь с помощью учетной записи службы лаборатории, имеет доступ к этим действиям. Поскольку эти действия необходимо вернуть в систему управления версиями в качестве настраиваемых сборок, убедитесь, что учетная запись службы лаборатории имеет разрешение на чтение пути, по которому возвращаются настраиваемые сборки. Дополнительные сведения об учетной записи службы лаборатории см. в разделе Практическое руководство. Настройка учетной записи службы для интеграции тестирования и рабочего процесса. Разрешения для учетной записи службы можно предоставить с помощью команды tf permissions. Например, чтобы предоставить разрешение на чтение для учетной записи службы лаборатории mydomain\labAccount, расположенной в $/MyProject/CustomAssemblies, необходимо выполнить команду, аналогичную C:\Program Files\Microsoft Visual Studio 10.0\Common7\IDE>tf permission /user:mydomain\labAccount /collection:http://aseemb-tfs10:8080/tfs/Collection0 /allow:read $/MyProject/CustomAssemblies
Настройка доступа к расположению сброса построения с помощью учетной записи агента построения
Агент построения, выполняющий рабочий процесс лаборатории, получает доступ к расположению сброса построения с помощью учетной записи службы лаборатории. Если необходимо, чтобы вместо этого агент построения использовал учетную запись агента построения, можно настроить шаблон рабочего процесса. В шаблоне найдите действие RunDeploymentScript, выполняющее скрипты развертывания. Это действие предоставляет доступ к свойству SharedLocationForNetUse, определяющему расположение, к которому необходим доступ с помощью учетной записи службы лаборатории. <mtlwa:RunDeploymentScript DisplayName="Running Deployment Script" ScriptDetails="[scriptDetails]" ThrowOnError="True" SharedLocationForNetUse="[BuildLocation]" />. Чтобы получить доступ к расположению сброса под учетной записью агента построения вместо учетной записи службы лаборатории, удалите свойство из шаблона или задайте значение этого свойства как NULL ({x:Null}), как показано в следующем примере: mtlwa:RunDeploymentScript DisplayName="Running Deployment Script" ScriptDetails="[scriptDetails]" ThrowOnError="True" SharedLocationForNetUse="{x:Null}" />.
Настройка доступа к другим расположениям с помощью учетной записи службы лаборатории
Если агент построения, который выполняется под учетной записью службы лаборатории, должен считывать расположения, отличные от расположения сброса построений, можно изменить значение свойства SharedLocationForNetUse со значения по умолчанию [BuildLocation] на необходимое расположение. Например, для агента построения, который выполняется под учетной записью службы и которому требуется доступ к каталогу \\contoso\scripts, код должен выглядеть следующим образом: <mtlwa:RunDeploymentScript DisplayName="Running Deployment Script" ScriptDetails="[scriptDetails]" ThrowOnError="True" SharedLocationForNetUse="\\contoso\scripts" />.
См. также
Задачи
Создание базового определения построения
Ссылки
A Developer's Introduction to Windows Workflow Foundation (WF) in .NET 4
Основные понятия
Использование виртуальной лабораторной среды в жизненном цикле приложения
Другие ресурсы
Действия Team Foundation Lab Management
Определение процесса построения
Журнал изменений
Дата |
Журнал |
Причина |
---|---|---|
Октябрь 2010 |
Добавлено два рисунка, на которых показаны действия по настройке рабочего процесса. |
Улучшение информации. |