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


Действия рабочего процесса 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, задающее причину сборки.

Последовательность рабочего процесса развертывания приложения

Рабочий процесс развертывания приложения

Последовательность Рабочего процесса развертывания приложения управляет всем сценарием сборки, развертывания и тестирования.

Рабочий процесс развертывания приложения объявляет следующие переменные.

  • BuildDetail: объект IBuildDetail.

  • LabEnvironmnetUri: строка String, задающая URI среды, в которой развертывается сборка.

  • BuildLocation: строка String, задающая расположение сборки.

  • SnapshotId: строка String, задающая идентификатор снимка виртуальной машины.

  • QueueBuildId: значение Int32, задающее идентификатор сборки в очереди.

Запуск сборки

Обновление номера сборки

Действие Обновление номера сборки разворачивает и возвращает номер сборки в аргументе BuildNumberFormat. Обновление номера сборки — это действие Microsoft.TeamFoundation.Build.Workflow.Activities.UpdateBuildNumber.

Получение сведений о сборке

Действие Получение сведений о сборке возвращает данные, необходимые для выполнения сборки, заданной в мастере рабочего процесса, или для доступа к ней. Объект IBuildDetail хранится в переменной BuildDetail.

Получение сведений о сборке — это действие Microsoft.TeamFoundation.Build.Workflow.Activities.GetBuildDetail. Шаблон задает следующие свойства.

  • Результат возвращает объект IBuildDetail в переменную BuildDetail.

Действие при необходимости построения

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

Действие "Выполнение построения"

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

Запуск рабочего процесса сборки

Действие Запуск рабочего процесса сборки ставит новую сборку в очередь в указанном контроллере сборки и возвращает идентификатор поставленной в очередь сборки в переменной QueueBuildId. Запуск рабочего процесса сборки — это действие RunWorkflow. Шаблон задает следующие свойства.

  • BuildDefinition задается как свойство BuildDetails.BuildDefinitionName аргумента LabWorkflowParameters.

  • Аргумент ProjectName задается как свойство TeamProject переменной BuildDetail.

Дождитесь завершения сборки

Действие Дождитесь завершения сборки приостанавливает выполнение, пока сборка не будет завершена или пока не истечет время ожидания. Если время ожидания истекло, действие создает исключение. Действие возвращает состояние сборки в переменной BuildStatus, а данные о новой сборке — в переменной ChildBuildDetail . Дождитесь завершения сборки — это действие WaitForWorkflow. Шаблон задает следующие значения свойств.

  • AllowPartiallySucceededBuild задается значение true

  • BuildDetails возвращает данные новой сборки в переменную ChildBuildDetail.

  • MaxWaitTime задается значение "Бесконечно".

  • QueueBuildId возвращает идентификатор в очереди сборки в переменную QueueBuildId.

Задать расположение сборки

Действие Задать расположение сборки назначает расположение сборки из переменной ChildBuildDetail как свойство BuildDetails.BuildUri аргумента LabWorkflowParameters.

Развертывание приложения

Обновление сводки о развертывании

Действие Обновление сводки о развертывании записывает имя среды цели развертывания на страницу сборки. Обновление сводки о развертывании — это действие WriteDeploymentInformation.

GetBuildLocationAndBuildNumber

Действие GetBuildLocationAndBuildNumber возвращает заданное место для сборки в переменную BuildLocation. GetBuildLocationAndBuildNumber — это действие GetBuildLocationAndBuildNumber. Шаблон задает следующие свойства.

  • BuildDetails задается как объект BuildDetails, содержащийся в аргументе LabWorkflowParameters.

  • BuildNumber возвращает номер сборки в переменную BuildNumber.

  • Результат возвращает расположение сборки в переменную BuildLocation

  • SelectedBuild возвращает объект IBuildDetail в переменную SelectedBuildDetail, которая содержит данные сборки на сервере сборок.

Действие "Вычислить необходимое расположение построения"

Если выполнены условия Вычисление необходимого расположения сборки, действие Вычисление пути сборки добавляет вложенные папки платформы и конфигураций сборки в заданное место.

Действие при выборе хранимой среды пользователем

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

Получение лабораторной среды

Действие Получение лабораторной среды возвращает URI среды в переменную LabEnvironmentUri. Получение лабораторной среды — это действие GetLabEnvironmentUri. Шаблон задает следующие свойства.

  • LabEnvironmentName задается как значение свойства EnvironmentDetails.LabEnvironmentName аргумента LabWorkflowParameters.

  • ProjectName задается как значение свойства TeamProject переменной BuildDetail.

  • Действие Результат возвращает URI лабораторной среды в переменную LabEnvironmentUri.

  • TeamProjectLabLocationName задается как значение свойства EnvironmentDetails.HostGroupName аргумента LabWorkflowParameters.

  • TfsServerUrl задается значение NULL.

Действие при восстановлении снимка

Действие При восстановлении снимка определяет, запросил ли пользователь восстановление среды до чистого снимка. Если условие удовлетворено, выполняется последовательность Восстановить снимок; в противном случае действие Чистый снимок не указан выводит предупреждение в сводку сборки.

Действие восстановления снимка

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

Получение сведений о снимке

Получение сведений о снимке — это действие GetLabEnvironmentSnapshotId. Шаблон задает следующие свойства.

  • LabEnvironmentUri задается как значение переменной LabEnvironmentUri.

  • Результат возвращает идентификатор снимка в переменную SnapshotId.

  • SnapshotName задается как свойство EnvironmentDetails.SnapshotName аргумента LabWorkflowParameters.

Восстановление лабораторной среды с помощью снимка

Восстановление лабораторной среды с помощью снимка — это действие RestoreLabEnvironment. Шаблон задает следующие свойства.

  • LabEnvironmentUri задается как значение переменной LabEnvironmentUri.

  • SnapshotId задается как значение переменной SnapshotId.

Действие при необходимости развертывания

Действие Если требуется развертывание определяет, запросил ли пользователь развертывание.

Действие "Выполнение развертывание"

Если условие удовлетворено, выполняется последовательность Выполнение развертывания.

Дождитесь готовности возможности рабочего процесса

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

  • LabEnvironmentUri задается как значение переменной LabEnvironmentUri.

  • MaxWaitTime задается значение 20 минут.

  • RepairCapabilityBeforeWaitBegins задается значение false.

Действие выполнения скрипта развертывания

Действие Запуск скриптов развертывания выполняет последовательность Выполнение скрипта в лабораторной системе для каждого скрипта развертывания, содержащегося в списке свойства DeploymentDetails.Scripts аргумента LabWorkflowParameters.

Действие выполнения скрипта в лабораторной системе

Последовательность Выполнение скриптов в лабораторной системе выполняет указанный скрипт на виртуальной машине в среде. Последовательность Выполнение скриптов в лабораторной системе объявляет следующие переменные.

Инициализация тегов агента и скрипта развертывания

Действие Инициализация тегов агента и скрипта развертывания разворачивает макросы и теги скрипта и возвращает результаты в объекте ScriptDetails. Инициализация тегов агента и скрипта развертывания — действие InitializeAgentSpecAndEnvironmentVariables. Шаблон задает следующие значения.

  • BuildLocation задается как значение переменной BuildLocation.

  • DeploymentScriptDetails задается как значение повторяемой строки DeploymentDetails.Scripts.

  • LabEnvironmentUri задается как значение переменной LabEnvironmentUri.

  • Результат возвращает развернутый скрипт в переменную scriptDetails.

Область агента лаборатории

Действие Область агента лаборатории определяет, установлен ли агент лаборатории и выполняется ли он на конечной виртуальной машине, а затем вызывает действие Выполнение скрипта развертывания, чтобы выполнить скрипт. Если какой-либо из скриптов завершается ошибкой на этой машине, создается исключение. Область агента лаборатории — действие Microsoft.TeamFoundation.Build.Workflow.Activities.AgentScope. Шаблон задает следующие свойства.

  • MaxExecutionTime задается значение "Бесконечно".

  • MaxWaitTime задается значение 5 минут.

  • ReservationSpec задается как объект Microsoft.Te:amFoundation.Build.Client.BuildAgentSpec, являющийся свойством AgentSpec переменной scriptDetails.

Выполнение скрипта развертывания

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

  • ScriptDetails задается как значение переменной scriptDetails.

  • ThrowOnError задается значение true.

  • SharedLocationForNetUse задается как значение переменной BuildLocation.

Приложение успешно развернуто

Действие Приложение успешно развернуто записывает сведения в сводку сборки. Приложение успешно развернуто — это действие WriteDeploymentInformation.

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

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

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

Последовательность Создайте снимок после развертывания

Создайте снимок после развертывания объявляет следующие переменные.

  • PostDeploymentSnapshotChainId: Int64

  • PostDeploymentSnapshotName: String. Шаблон задает значение по умолчанию как значение свойства BuildNumber переменной BuildDetails.

Действие "Проверить имя снимка"

Действие Проверка имени снимка определяет, задано ли имя снимка. Если условие выполнено, используется заданное имя; в противном случае используется значение по умолчанию.

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

Создание снимка после развертывания — это действие SnapshotLabEnvironment, создающее снимок. Шаблон задает следующие свойства.

  • LabEnvironmentUri задается как значение переменной LabEnvironmentUri.

  • SnapshotChainId возвращает идентификатор снимка в переменную PostDeploymentSnapshotChainId.

  • SnapshotName задается как значение переменной PostDeploymentSnapshotName.

Снимок успешно создан

Действие Снимок успешно создан записывает имя снимка в сводку сборки. Снимок успешно создан — это действие WriteDeploymentInformation.

Добавлена ссылка подключения для снимка

Действие Добавлена ссылка подключения для снимка записывает URL-адрес снимка в сводку сборки. Добавлена ссылка подключения для снимка — действие WriteDeploymentInformation.

Выполнение тестов

Действие выполнения тестов в среде

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

Действие выполнения тестов

Выполнение тестирования

Выполнение тестов объявляет следующие переменные.

  • TestCapabilityInfo: Microsoft.TeamFoundation.Lab.Client.TestingCapabilityInformation.

  • TestResults: Microsoft.TeamFoundation.Lab.Workflow.Activities.TestRunStatistics. Шаблон задает значение по умолчанию как новый объект TestRunStatistics.

Дождитесь готовности возможностей тестирования

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

Дождитесь готовности возможностей тестирования — действие WaitForTestCapabilityServices. Шаблон задает следующие свойства.

  • LabEnvironmentUri задается как значение переменной LabEnvironmentUri.

  • MaxWaitTime задается значение 20 минут.

  • RepairCapabilityBeforeWaitBegins задается значение false.

Выполнение тестов

Действие Выполнение тестов выполняет тесты и возвращает результаты тестов. Выполнение тестов — действие ExecuteRemoteTestRun. Шаблон задает следующие значения.

  • MaxWaitTime задается значение "Бесконечно".

  • BuildNumber задается как значение переменной BuildNumber.

  • TestDirectory задается как значение переменной BuildLocation.

  • LabEnvironmentUri задается как значение переменной LabEnvironmentUri.

  • TestParameters задается как объект TestParameters, содержащийся в объекте LabWorkflowParameters.

  • Результат возвращает объект Microsoft.TeamFoundation.Lab.Workflow.Activities.RunTestDetails, содержащий результаты тестов в переменной TestResults.

  • Заголовок задает имя тестового запуска как значение свойства BuildNumber переменной BuildDetail.

Действие при неудачном завершении всех тестов

Действие Если все тесты не были пройдены определяет, были ли ошибки тестов, и выполняет действие Задание состояния сборки, если условие выполнено.

Задание состояния сборки

Действие Задание состояния сборки определяет, включает ли рабочий процесс сборку или развертывание приложения. Если это условие выполнено, действие Частичный успех задает состояние рабочего процесса как значение BuildStatus.PartiallySucceeded. В противном случае действие Сбой задает переменной BuildStatus значение Failed.

См. также

Основные понятия

Действия рабочего процесса Lab Management