Действия рабочего процесса LabDefaultTemplate
В этом разделе описаны действия Windows Workflow в файле LabDefaultTemplate.11.xaml. Файл LabDefaultTemplate определяет рабочий процесс Lab Management, который позволяет собирать, развертывать и запускать приложение в лабораторной среде. Дополнительные сведения о Windows Workflow см. на странице Windows Workflow Foundation (WF) в .NET 4. Введение для разработчиков на веб-сайте MSDN.
Требования
- Visual Studio Ultimate, Visual Studio Premium, Visual Studio Test Professional
Инициализация рабочего процесса
Корень файла LabDefaultTemplate — действие TfsBuild.Process. Этот построитель ActivityBuilder инициализирует глобальные аргументы для определения сборки рабочего процесса на основании входных данных, введенных в окне "Определение сборки" и в мастере параметров рабочего процесса лаборатории.
Аргументы
Аргумент LabWorkflowParameters содержит данные, введенные в мастере параметров рабочего процесса лаборатории. Этот аргумент является объектом LabWorkflowDetails, который содержит следующие объекты:
BuildDetails |
Объект Microsoft.TeamFoundation.Lab.Workflow.Activities.BuildDetails, содержащий сведения сборки для рабочего процесса сборки, развертывания и тестирования. |
DeploymentDetails |
Объект Microsoft.TeamFoundation.Lab.Workflow.Activities.DeploymentDetails, содержащий сведения, необходимые для развертывания сборки в рабочем процессе. |
EnvironmentDetails |
Объект Microsoft.TeamFoundation.Lab.Workflow.Activities.LabEnvironmentDetails, содержащий сведения, определяющие среду, которая должна использоваться для сценария сборки, развертывания и тестирования. |
TestParameters |
Объект Microsoft.TeamFoundation.Lab.Workflow.Activities.RunTestDetails, содержащий сведения о параметрах тестирования, необходимых для создания автоматического тестового запуска. |
Следующие аргументы объявляются и в глобальной области.
Аргумент |
Тип |
---|---|
Metadata |
ProcessParameterMetadataCollection |
Verbosity |
Перечисленное значение Verbosity, задающее объем сведений, записанных в журнал. |
BuildNumberFormat |
Строка String, задающая формат номера сборки. |
SupportedReasons |
Перечисленное значение BuildReason, задающее причину сборки. |
Последовательность рабочего процесса развертывания приложения
![]() |
Последовательность Рабочего процесса развертывания приложения управляет всем сценарием сборки, развертывания и тестирования. Рабочий процесс развертывания приложения объявляет следующие переменные.
|
Запуск сборки
Обновление номера сборки |
Действие Обновление номера сборки разворачивает и возвращает номер сборки в аргументе BuildNumberFormat. Обновление номера сборки — это действие Microsoft.TeamFoundation.Build.Workflow.Activities.UpdateBuildNumber. |
Получение сведений о сборке |
Действие Получение сведений о сборке возвращает данные, необходимые для выполнения сборки, заданной в мастере рабочего процесса, или для доступа к ней. Объект IBuildDetail хранится в переменной BuildDetail. Получение сведений о сборке — это действие Microsoft.TeamFoundation.Build.Workflow.Activities.GetBuildDetail. Шаблон задает следующие свойства.
|
![]() |
Действие Если требуется сборка определяет, необходима ли новая сборка для процесса сборки Team System. Если условия выполнены, рабочий процесс запускает последовательность Выполнение сборки. |
![]() |
Последовательность Выполнение сборки запускает сборку, ожидает окончания сборки, а затем задает расположение сборки. |
Запуск рабочего процесса сборки |
Действие Запуск рабочего процесса сборки ставит новую сборку в очередь в указанном контроллере сборки и возвращает идентификатор поставленной в очередь сборки в переменной QueueBuildId. Запуск рабочего процесса сборки — это действие RunWorkflow. Шаблон задает следующие свойства.
|
Дождитесь завершения сборки |
Действие Дождитесь завершения сборки приостанавливает выполнение, пока сборка не будет завершена или пока не истечет время ожидания. Если время ожидания истекло, действие создает исключение. Действие возвращает состояние сборки в переменной BuildStatus, а данные о новой сборке — в переменной ChildBuildDetail . Дождитесь завершения сборки — это действие WaitForWorkflow. Шаблон задает следующие значения свойств.
|
Задать расположение сборки |
Действие Задать расположение сборки назначает расположение сборки из переменной ChildBuildDetail как свойство BuildDetails.BuildUri аргумента LabWorkflowParameters. |
Развертывание приложения
Обновление сводки о развертывании |
Действие Обновление сводки о развертывании записывает имя среды цели развертывания на страницу сборки. Обновление сводки о развертывании — это действие WriteDeploymentInformation. |
GetBuildLocationAndBuildNumber |
Действие GetBuildLocationAndBuildNumber возвращает заданное место для сборки в переменную BuildLocation. GetBuildLocationAndBuildNumber — это действие GetBuildLocationAndBuildNumber. Шаблон задает следующие свойства.
|
![]() |
Если выполнены условия Вычисление необходимого расположения сборки, действие Вычисление пути сборки добавляет вложенные папки платформы и конфигураций сборки в заданное место. |
![]() |
Действие Если пользователь выбрал хранимую среду проверяет, развернута ли среда, а Указать ошибку создает исключение, если среда сохранена в библиотеке. |
Получение лабораторной среды |
Действие Получение лабораторной среды возвращает URI среды в переменную LabEnvironmentUri. Получение лабораторной среды — это действие GetLabEnvironmentUri. Шаблон задает следующие свойства.
|
![]() |
Действие При восстановлении снимка определяет, запросил ли пользователь восстановление среды до чистого снимка. Если условие удовлетворено, выполняется последовательность Восстановить снимок; в противном случае действие Чистый снимок не указан выводит предупреждение в сводку сборки. |
![]() |
В последовательности Восстановить снимок действие Получение сведений о снимке вычисляет идентификатор снимка, а действие Восстановление лабораторной среды с помощью снимка выполняет восстановление. |
Получение сведений о снимке |
Получение сведений о снимке — это действие GetLabEnvironmentSnapshotId. Шаблон задает следующие свойства.
|
Восстановление лабораторной среды с помощью снимка |
Восстановление лабораторной среды с помощью снимка — это действие RestoreLabEnvironment. Шаблон задает следующие свойства.
|
![]() |
Действие Если требуется развертывание определяет, запросил ли пользователь развертывание. |
![]() |
Если условие удовлетворено, выполняется последовательность Выполнение развертывания. |
Дождитесь готовности возможности рабочего процесса |
Действие Дождитесь готовности возможности рабочего процесса приостанавливает выполнение до тех пор, пока не будут готовы возможности рабочего процесса среды или не истечет время ожидания. После истечения времени ожидания создается исключение. Дождитесь готовности возможности рабочего процесса — действие WaitForWorkflowCapabilityServices. Шаблон задает следующие свойства.
|
![]() |
Действие Запуск скриптов развертывания выполняет последовательность Выполнение скрипта в лабораторной системе для каждого скрипта развертывания, содержащегося в списке свойства DeploymentDetails.Scripts аргумента LabWorkflowParameters. |
![]() |
Последовательность Выполнение скриптов в лабораторной системе выполняет указанный скрипт на виртуальной машине в среде. Последовательность Выполнение скриптов в лабораторной системе объявляет следующие переменные.
|
Инициализация тегов агента и скрипта развертывания |
Действие Инициализация тегов агента и скрипта развертывания разворачивает макросы и теги скрипта и возвращает результаты в объекте ScriptDetails. Инициализация тегов агента и скрипта развертывания — действие InitializeAgentSpecAndEnvironmentVariables. Шаблон задает следующие значения.
|
Область агента лаборатории |
Действие Область агента лаборатории определяет, установлен ли агент лаборатории и выполняется ли он на конечной виртуальной машине, а затем вызывает действие Выполнение скрипта развертывания, чтобы выполнить скрипт. Если какой-либо из скриптов завершается ошибкой на этой машине, создается исключение. Область агента лаборатории — действие Microsoft.TeamFoundation.Build.Workflow.Activities.AgentScope. Шаблон задает следующие свойства.
|
Выполнение скрипта развертывания |
Действие Выполнение скрипта развертывания выполняет скрипт развертывания на конечной виртуальной машине. Выполнение скрипта развертывания — действие RunDeploymentScript. Шаблон задает следующие значения.
|
Приложение успешно развернуто |
Действие Приложение успешно развернуто записывает сведения в сводку сборки. Приложение успешно развернуто — это действие WriteDeploymentInformation. |
![]() |
Действие Снимок после развертывания определяет, запросил ли пользователь сохранение снимка среды после развертывания. Если это условие удовлетворено, выполняется последовательность Создайте снимок после развертывания. В противном случае действие Снимок после развертывания не указан записывает в журнал предупреждение. |
![]() |
Последовательность Создайте снимок после развертывания Создайте снимок после развертывания объявляет следующие переменные. |
![]() |
Действие Проверка имени снимка определяет, задано ли имя снимка. Если условие выполнено, используется заданное имя; в противном случае используется значение по умолчанию. |
Создание снимка после развертывания |
Создание снимка после развертывания — это действие SnapshotLabEnvironment, создающее снимок. Шаблон задает следующие свойства.
|
Снимок успешно создан |
Действие Снимок успешно создан записывает имя снимка в сводку сборки. Снимок успешно создан — это действие WriteDeploymentInformation. |
Добавлена ссылка подключения для снимка |
Действие Добавлена ссылка подключения для снимка записывает URL-адрес снимка в сводку сборки. Добавлена ссылка подключения для снимка — действие WriteDeploymentInformation. |
Выполнение тестов
![]() |
Действие Выполнение тестов в среде определяет, было ли требование выполнения автоматических тестов. Если условие удовлетворено, выполняется последовательность Выполнение тестов. |
![]() |
Выполнение тестирования Выполнение тестов объявляет следующие переменные.
|
Дождитесь готовности возможностей тестирования |
Действие Дождитесь готовности возможностей тестирования приостанавливает выполнение до тех пор, пока не будут готовы возможности тестирования среды или не истечет время ожидания. После истечения времени ожидания создается исключение. Дождитесь готовности возможностей тестирования — действие WaitForTestCapabilityServices. Шаблон задает следующие свойства.
|
Выполнение тестов |
Действие Выполнение тестов выполняет тесты и возвращает результаты тестов. Выполнение тестов — действие ExecuteRemoteTestRun. Шаблон задает следующие значения.
|
![]() |
Действие Если все тесты не были пройдены определяет, были ли ошибки тестов, и выполняет действие Задание состояния сборки, если условие выполнено. |
Задание состояния сборки |
Действие Задание состояния сборки определяет, включает ли рабочий процесс сборку или развертывание приложения. Если это условие выполнено, действие Частичный успех задает состояние рабочего процесса как значение BuildStatus.PartiallySucceeded. В противном случае действие Сбой задает переменной BuildStatus значение Failed. |