Действия Team Foundation Build
Действия Team Foundation Build — основные компоненты процесса построения в системе Team Foundation Build. Эти действия можно использовать для создания пользовательского процесса построения, что позволяет соблюсти требования команды разработки, например, создать пользовательскую логику или выполнить специализированные задачи.
В большинстве случаев лучший способ создания пользовательского шаблона процесса построения — создание его на основе шаблона по умолчанию (DefaultTemplate.xaml). Это позволяет использовать полезную функциональность, созданную ранее, изменив нужные фрагменты в соответствии с требованиями. Другим преимуществом этого подхода является возможность знакомиться с конкретными практическими примерами использования действий, описанными в этом разделе. Сведения о создании шаблона процесса построения см. в разделе Настройка шаблона процесса сборки.
Важно!
Создавать пользовательский шаблон процесса построения имеет смысл, только в случае, если есть специфические требования.Быстро определить процесс построения, отвечающий обычным требованиям, можно с помощью DefaultTemplate.xaml.Дополнительные сведения см. в разделе Использование шаблона по умолчанию для процесса сборки.
Содержание раздела
Необходимые разрешения
Указатель действий по задачам
Алфавитный указатель действий
Необходимые разрешения
Для выполнения процедур, использующих действия Team Foundation Build, требуются следующие разрешения со значением Разрешить:
Редактировать определение построения
Извлечь и Вернуть для соответствующих каталогов системы управления версиями (например, подкаталога BuildProcessTemplates командного проекта)
Постановка построений в очередь
Дополнительные сведения см. в разделе Справочник по разрешениям Team Foundation Server.
Указатель действий по задачам
Выполнение основных задач
Получение значений переменных среды
Проверка переменных на значения NULL
Получение путей к файлам в рабочей области
Работа с каталогами
Получение пути к рабочему каталогу агента построения
Загрузка файлов, не находящихся в рабочей области
Поиск файлов
Запись предупреждений, ошибок, сообщений и других данных в журнал построения
Запись метаданных построения в хранилище данных
Контроль процесса построения
Запуск действия агента построения
Использование именованной структуры мьютекса для реализации потокобезопасного процесса
Ограничение разделов процесса построения на основе причин (триггеров)
Компиляция, тестирование и другие задачи
Использование MSBuild для компиляции двоичных файлов, запуска анализа кода и других задач
Выполнение тестирования
Получение списка тестов, которые затрагивает построение
Запуск процесса
Работа с системой управления версиями
Связывание наборов изменений и наборов рабочих элементов с построением
Возврат собранных изменений
Вычисление политик возврата
Назначение меток файлам в системе управления версиями
Получение списка наборов отложенных изменений
TfGet
TfResolve
TfShelve
TfUndo
TfUnshelve
TfWorkfold
Работа с рабочими элементами
Связывание наборов изменений и наборов рабочих элементов с построением
Создать рабочий элемент
Работа с символьными данными
Внедрение версий и путей системы контроля версий в символьные данные в PDB-файлах
Публикация символов в хранилище символов SymStore
Получение ссылок на полезные объекты
Возврат ссылки на объект для коллекции командного проекта
Возврат ссылки на объект для агента построения
Получение ссылки на объект для агента построения
Получение ссылки на объект для среды построения
Алфавитный указатель действий
AgentScope
ApproveRequestForCheckIn
AssociateChangesetsAndWorkItems
CheckInGatedChanges
ConvertWorkspaceItem
ConvertWorkspaceItems
CopyDirectory
CreateDirectory
CreateWorkspace
DeleteDirectory
DeleteWorkspace
DownloadFile
DownloadFiles
EvaluateCheckInPolicies
ExpandEnvironmentVariables
FindMatchingFiles
GenerateRunSettings
GetApprovedRequests
GetBuildAgent
GetBuildDetail
GetBuildDirectory
GetBuildEnvironment
GetCommonLocalPath
GetCommonServerPath
GetImpactedTests
GetPendingChanges
GetRejectedRequests
GetReshelvedShelveset
GetShelvedChanges
GetTeamProjectCollection
GetWorkspace
IndexSources
InvokeForReason
InvokeProcess
IsNotNull<T>
IsNull<T>
LabelSources
LabelWorkspace
MSBuild
MSTest
OpenWorkItem
ParseWorkspaceSpec
PublishSymbols
QueryShelvesets
RejectRequestFromCheckIn
RetryRequest
RetryRequests
RevertWorkspace
RunOnce
RunTests
SetBuildProperties
SharedResourceScope
SyncWorkspace
SynchronizeRequests
TfGet
TfQueryConflicts
TfResolve
TfShelve
TfUndo
TfUnshelve
TfWorkfold
TfsBuild
UpdateBuildNumber
WriteBuildError
WriteBuildInformation<T>
WriteBuildMessage
WriteBuildTestError
WriteBuildWarning
WriteCustomSummaryInformation
Выполнение основных задач
С помощью программы Team Foundation Build можно выполнить следующие действия:
Получение значений переменных среды
Получение путей к файлам в рабочей области
Работа с каталогами
Получение пути к рабочему каталогу агента построения
Загрузка файлов, не находящихся в рабочей области
Поиск файлов
Запись предупреждений, ошибок, сообщений и других данных в журнал построения
Запись метаданных о построении
Получение значений переменных среды (действие ExpandEnvironmentVariables)
Для разрешения одной и более переменных среды на сервере построения следует использовать действие ExpandEnvironmentVariables. Переменные среды считываются из агента построения, если активность находится внутри последовательности AgentScope; в других случаях они считываются из контроллера построения.
Совет
Можно получить полезные биты данных из переменных среды TF_BUILD.Например, можно получить каталог двоичных файлов, из которого копируются выходные файлы в расположение промежуточного хранения в процессе сборки.См. раздел Переменные среды Team Foundation Build.
Свойство Result действия ExpandEnvironmentVariables (String)
Возвращает результат операции. Пример: The temp directory on machine BLDSERV3 is C:\windows\SERVIC~2\NETWOR~1\AppData\Local\Temp.
Свойства-аргументы действия ExpandEnvironmentVariables
Input (String). Следует задать строку, содержащую переменные среды, которые необходимо разрешить. Необходимо форматировать каждую переменную среды, задавая свойство MSBuild, а не используя принятую в Windows запись со знаком процента. Пример: "The temporary directory on machine $(COMPUTERNAME) is $(TEMP)."
AdditionalVariables (IDictionary<String,String>). Можно задать объект IDictionary, содержащий любые дополнительные переменные (в качестве ключей), для которых нужно получить соответствующие значения.
К началу
Проверка переменных на значения NULL
IsNotNull<T>
Действие IsNotNull<T> позволяет проверить, что выражение Visual Basic (например, используемая переменная), указанное в свойстве Value (Object), не равно Null. Результаты теста возвращаются в свойство Result Boolean.
IsNull<T>
Действие IsNull<T> позволяет проверить, что выражение Visual Basic (например, используемая переменная), указанное в свойстве Value (Object), равно Null. Результаты теста возвращаются в свойство Result Boolean.
Получение путей к файлам в рабочей области
Для каждого построения существует рабочая область системы управления версиями, определенная на вкладке Рабочая область определения построения. Рабочая область предоставляет построению доступ к файлам исходного кода и к любым другим файлам, которые построению необходимо получить из системы управления версиями. Team Foundation Build предоставляет два действия, используемые для работы с файлами в рабочей области построения: ConvertWorkspaceItem и ConvertWorkspaceItems.
Дополнительные сведения о рабочих областях построений см. в разделе Создание или изменение определения сборки.
Совет
Подробное пошаговое руководство по использованию действия ConvertWorkspaceItem в распространенных сценариях см. в разделе Управление местом размещения двоичных файлов системой построения.
Получение пути к файлу в рабочей области (действие ConvertWorkspaceItem)
Действие ConvertWorkspaceItem используется для преобразования серверного пути в локальный путь агента построения и для обратного преобразования.
Свойство Result действия ConvertWorkspaceItem (String)
Возвращает преобразованный путь.
Свойства-аргументы действия ConvertWorkspaceItem
Input (String). Необходимо предоставить значение конвертируемого пути.
Workspace (Workspace). Необходимо предоставить ссылку на содержащую файл рабочую область Workspace. В большинстве случаев необходимо присвоить этому свойству ссылку на переменную, инициализированную в свойстве Result действия CreateWorkspace. При создании процесса построения на основе файла DefaultTemplate.xaml, вероятно, следует использовать переменную Workspace.
Направление
Преобразование серверного пути в локальный. В свойстве Direction выберите ServerToLocal, после чего задайте путь к файлу на сервере в свойстве Input (String).
Например, ваша команда может хранить общие служебные программы в каталоге $/OurTeam/BuildProcess/Util. Можно создать пользовательский процесс построения, запускающий служебную программу ScanBinaries.exe после завершения компиляции двоичных файлов. Если сопоставление для каталога $/OurTeam/BuildProcess/Util указано на вкладке Рабочая область вашего определения построения, можно задать $/OurTeam/BuildProcess/Util/ScanBinaries.exe в свойстве Input для получения локального пути к служебной программе из свойства Result (String).
Преобразование локального пути в серверный. В свойстве Direction выберите ServerToLocal, после чего задайте путь локальный к файлу в агенте построения свойстве Input.
Получение путей к файлам в рабочей области (действие ConvertWorkspaceItems)
Действие ConvertWorkspaceItems используется для преобразования серверных путей в локальные пути агента построения и для обратного преобразования.
Свойство Result действия ConvertWorkspaceItems (IList<String>)
Возвращает значения преобразованных путей.
Свойства-аргументы действия ConvertWorkspaceItems
Input (IEnumerable<String>). Необходимо предоставить значения конвертируемых путей.
Workspace (Workspace). Необходимо предоставить ссылку на содержащую файлы рабочую область Workspace. В большинстве случаев необходимо присвоить этому свойству ссылку на переменную, инициализированную в свойстве Result действия CreateWorkspace.
Совет
При создании процесса построения на основе файла DefaultTemplate.xaml, вероятно, следует использовать переменную Workspace.
Direction. Выберите одно из следующих значений:
Выберите значение ServerToLocal, если задаете свойству Input коллекцию значений серверных путей и хотите, чтобы свойство Result вернуло список значений локальных путей.
Выберите значение LocalToServer, если задаете свойству Input коллекцию значений локальных путей и хотите, чтобы свойство Result вернуло список значений серверных путей.
Работа с каталогами
Для работы с каталогами в Team Foundation Build предназначено несколько действий.
Совет
При работе с каталогами, являющимися частью рабочей области системы управления версиями, вместо них следует использовать действия рабочей области.Дополнительную информацию см в подразделе Получение путей к файлам в рабочей области.
Создание каталога (действие CreateDirectory)
Действие CreateDirectory используется для создания каталога, имя которого задается свойству Directory (String).
Копирование каталога (действие CopyDirectory)
Действие CopyDirectory используется для рекурсивного копирования всего содержимого каталога, указанного в свойстве Source (String) в другой каталог, указанный в свойстве Destination (String). Каталог, указанный в свойстве Destination, должен существовать на момент выполнения действия. Пустые каталоги и подкаталоги не копируются.
Удаление каталога (действие DeleteDirectory)
Действие DeleteDirectory используется для удаления каталога, имя которого задается свойству Directory (String). Если удаляемый каталог содержит подкаталоги, необходимо задать свойству Recursive (Boolean) значение True, в противном случае построение завершится ошибкой.
Получение пути к рабочему каталогу агента сборки (действие GetBuildDirectory)
Действие GetBuildDirectory используется для получения точного пути к рабочему каталогу агента построения в свойстве Result (String). Это действие можно использовать только внутри действия AgentScope.
К началу
Управление сведениями о пути
Действие GetCommonLocalPath
Действие GetCommonLocalPath используется для получения пути к общей папке самого низкого уровня, которая является родительской для одной или нескольких локальных папок. Например, если указать LocalItems (IEnumerable<String>) следующим образом:
{“c:\Code\Fabrikam-3\TestScrum\Main\FabrikamFiber.CallCenter”, “c:\Code\Fabrikam-3\TestScrum\Main\lib”}
То Result (String) возвращает:
c:\Code\Fabrikam-3\TestScrum\Main
Действие GetCommonServerPath
Действие GetCommonServerPath используется для получения пути к общей папке самого низкого уровня, которая является родительской для одной или нескольких локальных папок. Например, если указать ServerItems (IEnumerable<String>) следующим образом:
{“$/TestScrum/Main/FabrikamFiber.CallCenter”, “$/TestScrum/Main/lib”}
То Result (String) возвращает:
$/TestScrum/Main
Загрузка файлов, не находящихся в рабочей области
Действие DownloadFiles используется для загрузки одного или нескольких файлов. Действие DownloadFile следует игнорировать.
Действие DownloadFiles
Действие DownloadFiles используется для загрузки одного или нескольких файлов из системы управления версиями.
Совет
Если загружаемые файлы находятся в вашей рабочей области построения, возможно, следует получать к ним доступ с помощью действия ConvertWorkspaceItem.
Свойства-аргументы действия DownloadFiles
LocalPath (String). Необходимо указать значение:
Если требуется загрузить единичный файл, укажите локальный путь и имя, которое требуется присвоить локальной копии загружаемого файла, например "c:\Docs\readme.txt".
Если требуется загрузить несколько файлов, укажите локальный путь к каталогу, в который требуется загрузить файлы, например "c:\Docs\".
ServerPath (String). Необходимо указать значение:
Если требуется загрузить единичный файл, укажите серверный путь и имя загружаемого файла, например "$/Docs/readme.txt".
Если требуется загрузить несколько файлов, укажите серверный путь к каталогу, содержащему файлы, которые требуется загрузить, например "$/Docs/".
Recursion (RecursionType):
OneLevel. Загружает файл или файлы, находящиеся в каталоге, заданном свойству ServerPath.
Full. Загружает файл или файлы, находящееся в каталоге, заданном свойству ServerPath, и все файлы во всех подкаталогах этого каталога.
Version (String). Можно указать версию файла. Для загрузки текущей версии оставьте значение свойства равным Microsoft.TeamFoundation.VersionControl.Client.VersionSpec.Latest.DisplayString. Дополнительные сведения о версиях см. в разделе Синтаксис командной строки.
DeletionID (Int32). Это свойство следует задавать только если требуется загрузить файл, удаленный из системы контроля версий. Это значение можно получить в интерактивном режиме, набрав в командной строке tf dir /deleted. (Дополнительные сведения см. в разделе Dir Command.) В Team Foundation Build нет встроенного действия для получения DeletionID. Для использования этого действия нужно создать пользовательское действие, предоставляющее эту функциональность.
К началу
Действие DownloadFile
Действие DownloadFile следует игнорировать. Действие DownloadFiles — самый простой способ загрузить один или множество файлов.
Поиск файлов (действие FindMatchingFiles)
Действие FindMatchingFiles используется для поиска файлов. Задайте свойству MatchPattern (String) критерии поиска. В этом свойстве можно задать аргумент, включающий следующие элементы:
Синтаксис, поддерживаемый аргументом searchPattern метода Directory GetFiles(String, String).
** для указания на рекурсивный поиск. Примеры.
Для поиска текстовых файлов в каталоге с исходными кодами нужно задать для свойства MatchPattern значение, напоминающее следующее: String.Format("{0}\**\*.txt", SourcesDirectory).
Для поиска в каталоге с исходными кодами текстовых файлов, расположенных в одном или многих подкаталогах с именем txtfiles, нужно задать для свойства MatchPattern значение, напоминающее следующее: String.Format("{0}\**\txtfiles\*.txt", SourcesDirectory).
Результат операции будет содержаться в свойстве Result (IEnumerable<String>).
Запись предупреждений, ошибок, сообщений и других данных в журнал построения
WriteCustomSummaryInformation
Действие WriteCustomSummaryInformation используется для записи сообщения в сводку сборки, которую пользователь может просматривать в окне результатов сборки.
Свойства-аргументы действия WriteCustomSummaryInformation
Message (String). Необходимо указать сообщение, которое будет выводиться в сводку сборки.
Чтобы включить в сообщение гиперссылки, используйте следующие варианты синтаксиса:
[link text](url) [link text] (url)
Например:
For the latest operation status, see [Fabrikam Fiber Ops] (http://intranet.fabrikam.com/ops/status).
SectionDisplayName (String). Необходимо указать имя раздела, в котором будет отображаться сообщение. Если несколько экземпляров WriteCustomSummaryInformation с одинаковым значением SectionKey задают разные значения SectionDisplayName, то в шаблоне процесса сборки система использует SectionDisplayName первого экземпляра.
SectionKey (String). Необходимо указать идентификатор имени раздела, в котором будет отображаться сообщение. Указанное значение должно соответствовать правилам для поля NameProperty.
Например, если реализуются два экземпляра WriteCustomSummaryInformation, у которых SectionKey имеет значение “MySection”, при обработке сборки оба сообщения отображаются в одном разделе сводки сборки.
SectionPriority (Int32). Позволяет указать приоритет раздела, который в свою очередь определяет относительное положение раздела в сводке сборки. Чем меньше значение, тем выше раздел будет отображаться в сводке. Если несколько экземпляров WriteCustomSummaryInformation с одинаковым значением SectionKey задают разные значения SectionPriority, то в шаблоне процесса сборки система использует значение SectionPriority первого экземпляра.
К началу
Действие WriteBuildMessage
Действие WriteBuildMessage используется для записи информационного сообщения в журнал построения. Необходимо задать сообщение в свойстве Message (String). Также можно указать важность сообщения, изменив значение свойства Importance (BuildMessageImportance).
Совет
-
Пользователи процесса построения могут использовать фильтрацию для уменьшения потока информации. Это касается как сведений, предназначенных для них лично, так и содержимого хранилища данных.Используя содержательный и последовательный подход к установке свойства Importance для сообщений построения, вы облегчите эту фильтрацию.Дополнительные сведения см. в разделе Управление сведениями по построении и уровнем детализации.
-
При использовании параметров по умолчанию сообщение не будет записано в журнал построения.Устранить эту проблему можно одним из двух способов:
-
Присвойте свойству WriteBuildMessage Importance значение Microsoft.TeamFoundation.Build.Client.BuildMessageImportance.High.
-
На вкладке определения построения Процесс задайте параметру обработки Уровень подробного ведения журнала значение Detailed или Diagnostic.
-
Действие WriteBuildWarning
Действие WriteBuildWarning используется для записи предупреждающего сообщения в журнал построения. Предупреждения отображаются с желтым восклицательным знаком в окне результатов построения. Необходимо задать сообщение в свойстве Message (String).
Предупреждения построения записываются в журнал только при заданной в команде детализации "Минимальная" и выше. Дополнительные сведения см. в разделе Управление сведениями по построении и уровнем детализации.
Действие WriteBuildError
Действие WriteBuildError используется для записи сообщения об ошибке сборки в журнал сборки. Ошибки отображаются с красным восклицательным знаком в окне результатов построения. Если в журнал построения записана ошибка, построение получит статус не выше чем Partially Succeeded. Необходимо задать сообщение в свойстве Message (String).
Ошибки всегда записываются в журнал независимо от установленного уровня детализации. Дополнительные сведения см. в разделе Управление сведениями по построении и уровнем детализации.
Действие WriteBuildTestError
Действие WriteBuildTestError используется для записи сообщения об ошибке теста в журнал сборки. Ошибки отображаются с красным восклицательным знаком в окне результатов построения. Если в журнал построения записана ошибка, построение получит статус не выше чем Partially Succeeded. Необходимо задать сообщение в свойстве Message (String).
Ошибки всегда записываются в журнал независимо от установленного уровня детализации. Дополнительные сведения см. в разделе Управление сведениями по построении и уровнем детализации.
Действие WriteBuildInformation<T>
Действие WriteBuildInformation<T> используется для помещения объекта в журнал построения. При просмотре пользователем журнала в окне результатов построения объект отображается с помощью отражения.
Свойства-аргументы WriteBuildInformation<T>
Value (Object). Следует указать объект, который требуется поместить в журнал построения. Чтобы объект отобразился в окне результатов построения, он должен реализовывать интерфейс IBuildInformationNode; следует задать для свойства Type одно из следующих значений InformationTypes:
ActivityProperties
ActivityTracking
AgentScopeActivityTracking
BuildError
BuildMessage
BuildProject
BuildStep
BuildWarning
ExternalLink
OpenedWorkItem
ParentToBuildDetail. При значении False родительский объект этого объекта станет родительским объектом этого действия. При значении True — родительским объектом станет объект IBuildDetail.
Кроме прочего, это свойство влияет на отображение информации в окне результатов построения. Если задано значение False, информация будет отображаться с отступом; она будет выровнена по выходным данным других действий, следующих до и после действия WriteBuildInformation<T> и находящихся на том же уровне. Если задано значение True, информация отобразится без отступа.
К началу
Запись метаданных в хранилище данных
Метаданные построения можно записать в хранилище данных.
Запись номера построения (действие UpdateBuildNumber)
Запись ключевых точек данных построения (действие SetBuildProperties)
Совет
Если эти действия не поддерживают метаданные, которые требуется записать, можно использовать действие GetBuildDetail для получения ссылки на объект IBuildDetail, после чего с помощью этой ссылки присваивать данные непосредственно объекту.
Запись номера сборки (действие UpdateBuildNumber)
Действие UpdateBuildNumber используется, чтобы задать номер (или имя) построения. Действие выполняет следующие действия:
Создает номер построения на основе выражения, определяющего формат номера построения. Процесс построения обычно принимает это выражение из аргумента рабочего процесса, получаемого из параметра на вкладке Процесс определения построения.
Задает номер (или имя) построения, присваивая результирующее значение свойству BuildNumber.
Свойство Result действия UpdateBuildNumber (String)
Result. Возвращает новое значение BuildNumber.
Свойства UpdateBuildNumber
- BuildNumberFormat (String). Необходимо предоставить выражение, задающее формат номера построения. Дополнительные сведения о синтаксисе этого выражения см. в разделе Использование номеров сборок для назначения завершенным сборкам значимых имен.
К началу
Запись ключевых точек данных сборки (действие SetBuildProperties)
Действие SetBuildProperties используется для записи ключевых точек данных в объект IBuildDetail, управляющий хранением данных о каждом построении в хранилище данных. Значительная часть этих данных отображается в окне результатов построения.
Свойства SetBuildProperties
PropertiesToSet. Необходимо установить флажки, относящиеся к именам свойств, которые требуется задать.
BuildNumber (String). Можно задать для построения свойство BuildNumber, которое можно считать именем построения.
Совет
Если требуется задать это значение на основе определяемых пользователем параметров, находящихся на вкладке Процесс определения построения, следует вместо этого свойства использовать действие UpdateBuildNumber.
CompilationStatus (BuildPhaseStatus). Можно задать состояние компиляции (CompilationStatus). (Действие MSBuild также задает это значение автоматически.)
DropLocation (String). Можно задать каталог размещения в свойстве DropLocation.
Примечание
Если задать это свойство, каталог размещения не будет создан.Это свойство используется для хранения в хранилище данных местоположения каталога размещения, который обычно создается с помощью действия CreateDirectory.
KeepForever (Boolean). Если требуется обойти параметры, указанные на вкладке Retention Policy, и сохранить завершенное построение на неопределенное время, можно задать для свойства KeepForever значение True.
LabelName (String). Чтобы записать метку, использованную для указания на это построение среди файлов исходного кода в системе контроля версий, можно использовать свойство LabelName. Обычно это свойство задается в соответствии со значением свойства Name действия LabelWorkspace.
Важно!
Эти данные требуются Team Foundation Build, чтобы связать набор изменений и рабочие элементы с построением.Если не предоставить эти данные, действие AssociateChangesetsAndWorkItems завершится ошибкой.
LogLocation (String). Свойство LogLocation можно использовать для записи UNC-пути к папке, в которую процесс построения помещает файл журнала.
Примечание
Вероятно, при создании пользовательского процесса построения это свойство вам не понадобится.Это свойство предназначено для использования в файле UpgradeTemplate.xaml для поддержки прежних версий процессов построения.
Quality (String). Свойство Quality предназначено для записи качества построения.
SourceGetVersion (String). Свойство SourceGetVersion предназначено для записи спецификации версии, для которой извлекаются исходные коды построения.
Status (BuildStatus). Свойство Status позволяет записать общее состояние построения. Например, можно записать, было построение выполнено успешно или завершилось ошибкой.
TestStatus (BuildPhaseStatus). Свойство TestStatus используется для записи общего состояния тестов, выполненных для этого построения. Например, можно записать, были ли тесты, запущенные для этого построения, выполнены успешно или завершились ошибкой.
К началу
Контроль процесса сборки
Действия Team Foundation Build позволяют контролировать процесс построения следующими способами:
Запуск действия агента построения
Использование именованной структуры мьютекса для реализации потокобезопасного процесса
Ограничение разделов процесса построения на основе причин (триггеров)
Запуск действий на агенте сборки (действие AgentScope)
В действие AgentScope заключаются части процесса построения, которые требуется выполнить на агенте построения.
Свойства-аргументы действия AgentScope
Выбор агента
MaxWaitTime (TimeSpan). Указывает максимальное количество времени, в течение которого процесс построения ожидает доступности агента построения. Значение интервала времени задается в формате чч:мм:сс. Например, если указано значение 01:30:45, а построение не было назначено агенту построения спустя 1 час, 30 минут и 45 секунд, построение завершится ошибкой превышения времени ожидания. Укажите значение 00:00:00, если нужно предоставить контроллеру построений неограниченное время для поиска агента построения, который будет обрабатывать это определение построения.
Важно!
Чтобы избежать избыточного наполнения очереди построений, следует указать ненулевое значение свойства MaxWaitTime.
ReservationSpec (AgentReservationSpec). Можно ограничить тип агентов построения, которые будут обрабатывать действия, содержащиеся в данном действии. Например, можно указать, чтобы действия, входящие в действие AgentScope, обрабатывались только агентами с определенным тегом.
Выполнение
MaxExecutionTime (TimeSpan). Указывает максимальное количество времени, отведенного на завершение данного действия AgentScope. Значение интервала времени задается в формате чч:мм:сс. Например, если указано значение 04:30:15, а агент построения не завершил свою работу спустя 4 часа, 30 минут и 15 секунд, построение завершится ошибкой превышения времени ожидания. Укажите значение 00:00:00, если нужно предоставить агенту построения неограниченное время для обработки построения.
Совет
Чтобы избежать избыточного наполнения очереди построений, следует указать ненулевое значение свойства MaxExecutionTime.
Область
- DataToIgnore. Это свойство следует игнорировать.
К началу
Использование именованной структуры мьютекса для реализации потокобезопасного процесса (действие SharedResourceScope)
Действие SharedResourceScope используется для реализации именованной структуры мьютекса (структуры взаимного исключения). Это позволяет убедиться, что включенный сегмент процесса сборки "потокобезопасен".
Обычно это действие используется, чтобы заключить в него части процесса построения, которым нужен доступ к общему ресурсу, в то время как этот ресурс должен быть доступен одновременно только одному процессу. Например, требуется, чтобы построения последовательно записывали данные в один текстовый файл, находящийся в общей папке. Чтобы быть уверенным, что эти процессы будут работать правильно, следует реализовать их внутри действия SharedResourceScope.
Другой пример можно найти в шаблоне DefaultTemplate.xaml, где вызов действия PublishSymbols внедрен в действие SharedResourceScope:
Последовательность (Sequence) >
Выполнение в агенте (AgentScope) >
Попытка откомпилировать, протестировать и сопоставить наборы изменений и рабочие элементы (TryCatch [Try]) >
Последовательность (Sequence) >
Получение затронутых тестов, индексация исходного кода и публикация символов (Parallel) >
Если SourceAndSymbolServerSettings.IndexSources или SourceAndSymbolServerSettings.HasSymbolStorePath (If [Then]) >
Индексация исходного кода и публикация символов для инициированных сборок (InvokeForReason) >
Если SourceAndSymbolServerSettings.HasSymbolStorePath (If [Then]) >
Попытка опубликовать символы (TryCatch [Try]) >
Синхронизация доступа к хранилищу символов (SharedResourceScope) >
Публикация символов (PublishSymbols)
Свойства-аргументы действия SharedResourceScope
ResourceName (String). Необходимо задать значение. Все экземпляры действий SharedResourceScope с одинаковым значением ResourceName в коллекции командного проекта (даже если они находятся в разных шаблонах определения построения) запускаются поочередно.
MaxExecutionTime (TimeSpan). Указывает максимальное количество времени, отведенного на завершение действия SharedResourceScope. Значение интервала времени задается в формате чч:мм:сс. Например, если указано значение 04:30:15, а действие SharedResourceScope не завершило работу спустя 4 часа, 30 минут и 15 секунд, построение завершится ошибкой превышения времени ожидания. Укажите значение 00:00:00, если нужно предоставить для обработки действия SharedResourceScope неограниченное время.
Совет
Чтобы избежать избыточного наполнения очереди построений, следует указать ненулевое значение свойства MaxExecutionTime.
MaxWaitTime (TimeSpan). Указывает максимальное количество времени, в течение которого процесс построения ожидает в очереди, чтобы обработать действие SharedResourceScope. Значение интервала времени задается в формате чч:мм:сс. Например, если указано значение 01:30:45, а действие SharedResourceScope не завершило работу спустя 1 час, 30 минут и 45 секунд, построение завершится ошибкой превышения времени ожидания. Укажите значение 00:00:00, если нужно предоставить процессу построения неограниченное время для ожидания в очереди.
Совет
Чтобы избежать избыточного наполнения очереди построений, следует указать ненулевое значение свойства MaxWaitTime.
К началу
Ограничение разделов процесса сборки с помощью условий/триггеров (действие InvokeForReason)
В действие InvokeForReason заключается часть процесса построения, которую требуется выполнять только в ходе построений, выполняемых по определенной причине. Причины выполнения построения обычно задаются триггером, выбираемым пользователем на вкладке Триггер определения построения. В свойстве Reason можно указать одну или несколько причин, которые требуется разрешить. Дополнительные сведения см. в разделе Задание триггеров и причин выполнения сборки.
К началу
Компиляция, тестирование и другие задачи
Действия Team Foundation Build можно использовать для компиляции двоичных файлов, запуска тестов и других задач:
Использование MSBuild для компиляции двоичных файлов, запуска анализа кода и других задач
Выполнение тестирования
Получение списка тестов, которые затрагивает данное построение
Использование MSBuild для компиляции двоичных файлов, запуска анализа кода и других задач (действие MSBuild)
Действие MSBuild используется для компиляции двоичных файлов, запуска анализа кода и использования преимуществ других функций, предоставляемых MSBuild.
Свойство Result действия MSBuild
Свойства этого действия не возвращают результата. Это действие задает для свойства CompilationStatus значение Failed, если в журнал записаны какие-либо ошибки компиляции.
Свойства-аргументы действия MSBuild
AdditionalVCOverrides (String). Если задать для GenerateVsPropsFile значение True, содержимое этого свойства будет внедрено в файл, созданный .vsprops.
CommandLineArguments (String). Этому свойству можно присвоить аргументы командной строки, которые требуется передать в MSBuild.
Configuration (String). Это свойство позволяет указать конфигурацию для построения. Например, “debug” или “release”.
GenerateVSPropsFile (Boolean). Если это свойство имеет значение True, MSBuild создает стандартный файл .vsprops для передачи в проекты C++. Этот файл будет включать выходной каталог для проектов C++, а также все, что указано пользователем в свойстве AdditionalVCOverrides.
LogFile (String). Это свойство позволяет указать имя файла журнала, создаваемого MSBuild.
LogFileDropLocation (String). Это свойство позволяет задать полный UNC-путь к каталогу, в котором действию MSBuild следует размещать файлы журнала.
MaxProcesses (Int32). Это свойство позволяет задать максимальное количество процессов, создаваемых действием MSBuild.
OutDir (String). Это свойство позволяет задать каталог, в котором действие MSBuild размещает скомпилированные двоичные файлы. Дополнительные сведения см. в разделе Управление местом размещения двоичных файлов системой построения.
Platform (String). Это свойство позволяет задать платформу, для которой MSBuild выполняет построение. Например, “Any CPU”, “x86” или “x64”.
Project (String). Это свойство позволяет задать решение или проект кода, построение которого выполняет действие MSBuild.
ResponseFile (String). Это свойство позволяет задать файл ответов, используемый действием MSBuild.
RunCodeAnalysis (CodeAnalysisOption). Это свойство позволяет определить, должен ли анализ кода запускаться всегда, никогда или в зависимости от настроек проекта.
Targets (IEnumerable<String>). Это свойство позволяет задать целевые объекты для построения.
TargetsNotLogged (IEnumerable<String>). Это свойство позволяет задать целевые объекты, для которых события ProjectStarted не требуется заносить в журнал.
ToolPath (String). Это свойство позволяет задать путь к инструменту.
ToolPlatform (ToolPlatform). Это свойство позволяет задать платформу инструмента. Задайте значение Microsoft.TeamFoundation.Build.Workflow.Activities.ToolPlatform.Auto для определения платформы на основании текущей операционной системы.
Verbosity (BuildVerbosity). Это свойство позволяет задать детализацию журнала, создаваемого действием MSBuild.
Дополнительные сведения о многих параметрах действия MSBuild, на которые влияют значения свойств MSBuild см. в разделе Справочник по командной строке MSBuild.
К началу
Выполнение тестов
Тесты запускаются с помощью действия RunTests или MSTest.
Выполнение тестов с помощью действия RunTests
Действие RunTests используется для тестирования с помощью гибкого средства Agile Test Runner. Если сборка компилирует и тестирует двоичные файлы с использованием несовместимых платформ, это действие необходимо выполнить отдельно для сборок каждой из платформ.
Дополнительные сведения см. в разделе Выполнение тестов в процессе сборки.
Базовые свойства RunTests
TestSources (IEnumerable<String>). Необходимо указать список файлов сборки, содержащих требуемые тесты.
ExecutionPlatform (ExecutionPlatformType). Позволяет указать платформу двоичных файлов, которые требуется протестировать. Дополнительные сведения см. в разделе Agile Test Runner.
ExecutionTimeout (Int32). Позволяет указать максимальное время, в течение которого процесс сборки ожидает завершения тестового запуска. Укажите значение 0, если вы хотите предоставить действию RunTests неограниченное время для выполнения тестов.
KeepAlive (Boolean). Если задать этому свойству значение True, процесс средства Agile Test Runner продолжит функционировать в агенте сборки после завершения действия RunTests.
RunSettings (String). Не документировано.
TestCaseFilter (String). Это свойство позволяет запустить подмножество тестовых случаев. Дополнительные сведения см. в разделе Задание условий выполнения тестов средством выполнения тестов Visual Studio.
UpdateFrequency (Int32). Не документировано.
UpdateFrequencyTimeout (Int32). Не документировано.
Параметры публикации RunTests
Можно использовать следующие свойства, чтобы публиковать результаты тестов в коллекцию командных проектов:
PublishResults (Boolean). Если требуется публиковать результаты тестов, следует задать этому свойству значение True.
Flavor (String). Это свойство позволяет задать версию построения, для которой запускался тест, результат которого требуется опубликовать.
Platform (String)Это свойство позволяет платформу, для которой запускался тест, результат которого требуется опубликовать.
RunName (String). Позволяет указать имя тестового запуска. Клиенты процесса сборки будут видеть это имя в окне сводки результатов сборки. Если имя не указано, система автоматически создаст его.
Делегаты
OnTestCompleted. Не документировано.
OnTestRunCompleted. Не документировано.
К началу
Выполнение тестов с помощью действия MSTest
Это действие используется для запуска тестов с помощью MSTest.exe.
Базовые свойства действия MSTest
Решите, как требуется запускать тесты, после чего задайте значения соответствующих параметров.
Для запуска тестов в тестовых контейнерах (рекомендуемый подход) используйте следующие свойства:
TestContainers (IEnumerable<String>). Необходимо указать тестовые контейнеры для тестов, которые требуется запустить. Это свойство является аналогом параметра /testcontainer команды MSTest.exe. Дополнительные сведения см. в разделе Параметры командной строки программы MSTest.exe (/testcontainer).
SearchPathRoot (String). Это свойство позволяет задать корень пути к каталогу, в котором следует искать тестовые контейнеры и их зависимости. Если значение свойства не задано, действие MSTest попытается найти файлы в обычных местах.
TestSettings (String). Это свойство позволяет задать используемый файл конфигурации тестового запуска. Это свойство является аналогом параметра /testsettings команды MSTest.exe. Дополнительные сведения см. в разделе Параметры командной строки программы MSTest.exe (/testsettings).
Для выполнения тестов, входящих в списки тестов, следует использовать следующие свойства:
TestLists (IEnumerable<String>). Необходимо указать список тестов, который требуется запустить. Это свойство является аналогом параметра /testlist команды MSTest.exe. Дополнительные сведения см. в разделе Параметры командной строки программы MSTest.exe (/testlist) и Определение списков тестов для группировки тестов.
TestMetadata (String). Необходимо указать файл метаданных, содержащий списки тестов, которые требуется запустить. Это свойство является аналогом параметра /testmetadata команды MSTest.exe. Дополнительные сведения см. в разделе Параметры командной строки программы MSTest.exe (/testmetadata).
Свойства фильтрации действия MSTest
Для выбора тестов, которые требуется запустить, с помощью фильтра можно использовать следующие свойства:
Category (String). Это свойство позволяет отфильтровать тесты по категориям тестов. Это свойство является аналогом параметра /category команды MSTest.exe. Дополнительные сведения см. в разделе Параметры командной строки программы MSTest.exe (/category) и Определение категорий тестов для группировки тестов.
MaxPriority (Int32). Это свойство позволяет задать максимальный приоритет запускаемым тестам. Будут выполнены только тесты с приоритетом ниже данного значения или равным ему. Необходимо указать положительное целое число, равное свойству MinPriority или превосходящее его. Чтобы не задавать максимального приоритета, следует указать значение -1.
Совет
Если тестам назначены приоритеты, свойства MinPriority и MaxPriority могут стать важным механизмом для определения баланса между подробным тестированием и быстрым выполнением построений.
MinPriority (Int32). Это свойство позволяет задать минимальный приоритет запускаемым тестам. Будут выполнены тесты с приоритетом выше данного значения или равным ему. Необходимо указать положительное целое число, меньшее значения свойства MinPriority или равное ему. Чтобы не задавать минимального приоритета, следует указать значение -1.
TestNames (IEnumerable<String>). Это свойство позволяет задать имена тестов, которые требуется запустить. Это свойство является аналогом параметра /test команды MSTest.exe. Дополнительные сведения см. в разделе Параметры командной строки программы MSTest.exe (/test).
Свойства публикации действия MSTest
Можно использовать следующие свойства, чтобы публиковать результаты тестов в коллекцию командных проектов:
Publish (Boolean). Если требуется опубликовать результат теста, следует задать значение True.
Flavor (String). Это свойство позволяет задать версию построения, для которой запускался тест, результат которого требуется опубликовать. Это свойство является аналогом параметра /flavor команды MSTest.exe. Дополнительные сведения см. в разделе Параметры командной строки для публикации результатов тестов.
Platform (String)Это свойство позволяет платформу, для которой запускался тест, результат которого требуется опубликовать. Это свойство является аналогом параметра /platform команды MSTest.exe. Дополнительные сведения см. в разделе Параметры командной строки для публикации результатов тестов.
TestConfigId (Int32). Это свойство позволяет задать идентификатор существующей конфигурации управления тестированием, чтобы связать ее с тестовым запуском, результаты которого требуется опубликовать. Это свойство является аналогом параметра /testconfigid команды MSTest.exe. Для получения дополнительных сведений выполните команду MSTest /? в командной строке Visual Studio.
TestConfigName (String). Это свойство позволяет задать имя существующей конфигурации управления тестированием, чтобы связать ее с тестовым запуском, результаты которого требуется опубликовать. Это свойство является аналогом параметра /testconfigname команды MSTest.exe. Для получения дополнительных сведений выполните команду MSTest /? в командной строке Visual Studio.
Прочие свойства действия MSTest
CommandLineArguments (String). Сведения о дополнительных параметрах командной строки см. в разделе Параметры командной строки программы MSTest.exe.
PathToResultsFilesRoot (String). Это свойство позволяет задать корень пути к каталогу на агенте построения, где инструмент MSTest.exe размещает файлы результатов (TRX-файлы).
ToolPath (String). Это свойство позволяет задать путь к каталогу, где находится версия MSTest.exe, которую требуется выполнить. Если путь не указан, действие Team Foundation Build автоматически определяет путь на основе данных, содержащихся в списках тестов или в тестовых контейнерах.
К началу
Получение списка тестов, которые затрагивает сборка (действие GetImpactedTests)
Действие GetImpactedTests можно использовать для выявления изменений кода в текущем построении и создания списка тестов, затронутых этими изменениями. Это действие записывает список затронутых тестов в хранилище данных, что позволяет членам команды определить, какие тесты следует запустить после завершения построения. Дополнительные сведения об использовании этих данных вашей командой см. в разделе Какие тесты следует выполнить с момента предыдущей сборки?.
Примечание
Это действие не влияет на построения с условным возвратом или на частные построения.
Обязательные условия
Действие GetImpactedTests работает только при соблюдении следующих условий:
Действие MSTest запущено с использованием файла параметров тестирования (указанного в свойстве TestSettings), в котором собираются данные влияния тестов. Можно использовать файл Traceandtestimpact.testsettings, создаваемый автоматически, или другой файл параметров тестирования, в котором установлен флажок Тест влияния. Дополнительные сведения см. в разделе Практическое руководство. Сбор данных для определения тестов, которые должны быть выполнены после изменения кода.
Действие GetImpactedTests успешно идентифицировало предыдущее построение. Дополнительные сведения см. в следующем разделе.
Идентификация предыдущей сборки с помощью действия GetImpactedTests
Действие GetImpactedTests получает результат, сравнивая текущее построение с предыдущим. Действие идентифицирует предыдущее построение следующим образом:
Если задать свойство BaselineBuildDropLocation, построение, которым были созданы эти двоичные файлы, будет идентифицировано как предыдущее построение.
Если свойство BaselineBuildDropLocation не задано, действие идентифицирует предыдущее построение, производя в хранилище данных поиск последнего построения, соответствующего следующим условиям:
Значение свойства BuildDefinitionUri совпадает с текущим построением.
Значение свойства Status построения равно Succeeded или PartiallySucceeded.
У построения существует свойство DropLocation.
Построение не является построением с условным возвратом или закрытым построением.
Результирующие свойства действия GetImpactedTests
CodeChanges (CodeChangeList). Возвращает список изменений в каждом методе кода между текущим и прошлым построениями. Методы анализируются на уровне промежуточного языка MSIL.
ImpactedTests (TestList). Возвращает список тестов, затронутых изменениями кода между текущим и прошлым построениями.
Свойства-аргументы действия GetImpactedTests
Прочее
- Build. Необходимо предоставить объект IBuildDetail построения. Для получения ссылки на этот объект можно использовать действие GetBuildDetail.
Прочее
Assemblies (IEnumerable<String>). Необходимо указать список сборок, которые требуется проверить действием. Обычно это сборки, построение которых выполняется в рамках данного построения.
AssociatedChangesets (IList<Changeset>). Это свойство позволяет задать наборы изменений, которые требуется связать с результатами влияния на тесты. Обычно требуется указать наборы изменений, относящихся к построению. ссылку на эти наборы изменений можно получить с помощью действия AssociateChangesetsAndWorkItems.
BinariesRoot (String). необходимо задать путь к двоичным файлам, от которых зависят сборки. Это значение можно получить с помощью действия GetBuildDirectory.
Workspace (Workspace). Необходимо предоставить ссылку на рабочую область построения. Получить эту ссылку можно из свойства Result действия CreateWorkspace.
BaselineBuildDropLocation (String). Это свойство позволяет задать путь к транзитному каталогу, содержащему завершенные построения, которые требуется сравнить с текущим построением с помощью действия GetImpactedTests. Если это свойство не задано, действие пытается запросить предыдущее построение у системы построения. Дополнительные сведения см. ранее в этом разделе в подразделе "Идентификация предыдущего построения действием GetImpactedTests".
К началу
Запуск процесса (действие InvokeProcess)
Для запуска процесса (запуска программы) на сервере построения используется действие InvokeProcess. Это действие представляет собой программу-оболочку для Start.
Свойство Result действия InvokeProcess (Int32)
Возвращает ExitCode из процесса.
Свойства-аргументы действия InvokeProcess
FileName (String). Необходимо указать свойство FileName процесса, который требуется запустить (программы, которую требуется запустить). Например: %ProgramFiles%\ContosoBuildUtils\MarkBins.exe.
Arguments (String). Это свойство позволяет задать аргументы командной строки (Arguments), которые требуется передать процессу.
EnvironmentVariables (IDictionary<String,String>). Это свойство позволяет задать дополнительные переменные среды (EnvironmentVariables) и их значения.
OutputEncoding (Encoding). Это свойство позволяет задать кодировку, используемую для чтения потока вывода (StandardOutputEncoding) и потока сообщений об ошибках (RedirectStandardError). Во многих случаях значение по умолчанию этого свойства является наилучшим:
System.Text.Encoding.GetEncoding(System.Globalization.CultureInfo.InstalledUICulture.TextInfo.OEMCodePage)
WorkingDirectory (String). Это свойство позволяет задать рабочую папку (WorkingDirectory), в которой требуется запустить процесс.
Например, может потребоваться запустить инструмент MarkBins.exe для действий над скомпилированными двоичными файлами. Для ограничения области, для которой будет выполняться инструмент, можно вызвать действие GetBuildDirectory и поместить результат в это свойство.
Отображение стандартного выходного потока и потока сообщений об ошибках процесса
В действии InvokeProcess дважды щелкните область Дважды щелкните, чтобы просмотреть.
Перетащите действие WriteBuildMessage с панели элементов таким образом, чтобы оно помещалось под элементом Обработать стандартный вывод и задайте свойству Message действия WriteBuildMessage значение stdOutput.
Перетащите действие WriteBuildError с панели элементов таким образом, чтобы оно помещалось под элементом Обработать стандартный вывод и задайте свойству Message действия WriteBuildMessage значение errOutput.
Работа с системой управления версиями
С помощью программы Team Foundation Build можно выполнить следующие действия, связанные с управлением версиями:
Связывание наборов изменений и наборов рабочих элементов с построением
Возврат собранных изменений
Вычисление политик возврата
Назначение меток файлам в системе управления версиями
Сопоставление наборов изменений и рабочих элементов со сборкой (действие AssociateChangesetsAndWorkItems)
Действие AssociateChangesetsAndWorkItems предназначено для связывания каждого выполненного построения со всеми наборами изменений, внесенными в код, а также со связанными с ними рабочими элементами.
Каждое определение построения ведет собственную запись наборов изменений и рабочих элементов, которые ожидают связывания со следующим завершенным построением. Допустим, что набор изменений 382 мог быть построен с помощью построения A или B. Построение A было помещено в очередь и успешно завершено, а построение B было помещено в очередь и завершилось ошибкой. Набор изменений 382 теперь связан с успешно завершенным построением А и неудачно завершенным построением В. В дальнейшем набор изменений 382 не будет связан со следующим завершенным построением А, но будет связан со следующим успешно завершенным построением В.
Свойство Result действия AssociateChangesetsAndWorkItems (IList<Changeset>)
Возвращает наборы изменений, которые были связаны с построением.
Свойства-аргументы действия AssociateChangesetsAndWorkItems
CurrentLabel (String). Это свойство следует оставить пустым.
LastLabel (String). Это свойство следует оставить пустым.
UpdateWorkItems (Boolean). Если требуется заполнить поле Fixed In связанных рабочих элементов номером построения, следует задать для этого свойства значение True. В противном случае — значение False.
К началу
Возврат собранных изменений (действие CheckInGatedChanges)
Действие CheckInGatedChanges предназначено для возврата в систему управления версиями изменений кода, запустивших построение с условным возвратом. Это действие также связывает построение с рабочими элементами, связанными с наборами изменений.
Примечание
Для правильной работы следует поместить это действие в шаблоне после всех реализаций действий MSBuild и MSTest.
Свойство Result действия CheckInGatedChanges (Changeset)
Возвращает набор изменений, содержащий возвращаемые изменения.
Свойства-аргументы действия CheckInGatedChanges
IgnoreErrors (Boolean). Чтобы разрешить возврат файлов, только если свойства CompilationStatus и TestStatus имеют значение Succeeded, задайте этому свойству значение False. Чтобы разрешить возврат файлов вне зависимости от этих свойств, задайте значение True.
Примечание
Действие SetBuildProperties позволяет задать значения свойств CompilationStatus и TestStatus.
UpdateWorkItems (String). Если требуется заполнить поле Fixed In связанных рабочих элементов номером построения, следует задать для этого свойства значение True. В противном случае задайте False.
К началу
Оценка политик возврата (действие EvaluateCheckInPolicies)
Для выполнения политик возврата на сервере построения используется действие EvaluateCheckInPolicies. Это действие выполняет политики, которые действуют в папках, указанных на вкладке Рабочая область определения построения. Построение завершается ошибкой, если политики возврата завершаются ошибкой. Причиной может быть CheckInShelveset (построение с условным возвратом) или ValidateShelveset (закрытое построение).
Важно!
Политики возврата оцениваются на сервере построения, а не на клиентском компьютере.
Наиболее эффективно это действие можно использовать для усиления контроля качества, используя его совместно с построением с условным возвратом. Если действие используется таким образом, пользователь не может обойти политики возврата. Это действие наиболее полезно при использовании следующих политик возврата:
встроенная политика возврата Work Items;
пользовательские политики возврата, созданные для выполнения оценки на сервере построения.
Это действие не подходит для оценки встроенных политик возврата Builds и Code Analysis, поскольку более эффективно выполнять эти процессы непосредственно в сборке, используя действия MSBuild и MSTest.
Дополнительные сведения см. в следующих ресурсах:
Дополнительные сведения о встроенных политиках возврата см. в разделе Add Check-In Policies.
Сведения о настраиваемых политиках возврата см. в практическом руководстве по созданию настраиваемых политик возврата в Visual Studio Team Foundation Server.
Дополнительные сведения о построениях с условным возвратом см. в разделе Использование процесса сборки с условным возвратом для проверки изменений.
Дополнительные сведения о частных построениях см. в разделе Помещение сборки в очередь.
Свойства-аргументы действия EvaluateCheckInPolicies
- Workspace (Workspace). Необходимо задать рабочую область, которую требуется оценить. В большинстве случаев необходимо присвоить этому свойству ссылку на переменную, инициализированную в свойстве Result действия CreateWorkspace. При создании процесса построения на основе файла DefaultTemplate.xaml, вероятно, следует использовать переменную Workspace.
К началу
Назначение меток файлам в системе управления версиями
С помощью действий Team Foundation Build можно назначать файлам метки.
Назначение меток исходному коду, для которого выполняется построение
Назначение меток файлам
Назначение меток исходному коду, для которого выполняется сборка (действие LabelWorkspace)
Назначайте метки файлам исходного кода в системе контроля версий. Это позволит членам команды легко понимать, какая версия каждого файла включена в данное завершенное построение. Действие LabelWorkspace позволяет включить этот шаг в процесс построения.
Свойства-аргументы действия LabelWorkspace
Name (String). Необходимо указать имя метки.
Child (LabelChildOption). Это свойство позволяет задать способ обработки элементов, уже имеющих метки, совпадающие с указанными. Это свойство является аналогом параметра /child команды tf label.
Workspace (Workspace). Необходимо предоставить ссылку на рабочую область построения. В большинстве случаев необходимо присвоить этому свойству ссылку на переменную, инициализированную в свойстве Result действия CreateWorkspace. При создании процесса построения на основе файла DefaultTemplate.xaml, вероятно, следует использовать переменную Workspace.
Comment (String). Это свойство позволяет задать комментарий к метке. Это свойство является аналогом параметра /comment команды tf label.
Scope (String). Это свойство позволяет задать область для метки. Это свойство является аналогом аргумента @scope команды tf label.
Дополнительные сведения о параметрах tf label см. в разделе Label Command (Team Foundation Version Control).
К началу
Назначение меток файлам (действие LabelSources)
Действие LabelSources позволяет назначать метки файлам в системе управления версиями.
Совет
Если вы часто назначаете метки файлам исходного кода, для которых выполняется построение, более эффективно будет использовать действие LabelWorkspace.
Свойства-аргументы действия LabelSources
Items (IEnumerable<String>). Необходимо указать элементы, которым требуется назначить метку. Каждый объект String является аналогом аргумента itemspec команды tf label.
Name (String). Необходимо указать имя метки.
Scope (String). Необходимо задать область для метки. Это свойство является аналогом аргумента @scope команды tf label.
Recursion (RecursionType). Это свойство позволяет задать значение Microsoft.TeamFoundation.VersionControl.Client.RecursionType.Full, если требуется назначить метки всем файлам в иерархии каталогов. В противном случае можно указать Microsoft.TeamFoundation.VersionControl.Client.RecursionType.OneLevel.
Version (String). Выберите версию элементов, которым требуется назначить метку. Это свойство является аналогом параметра /version команды tf label.
Child (LabelChildOption). Это свойство позволяет задать способ обработки элементов, уже имеющих метки, совпадающие с указанными. Это свойство является аналогом параметра /child команды tf label.
Comment (String). Это свойство позволяет задать комментарий к метке. Это свойство является аналогом параметра /comment команды tf label.
Дополнительные сведения о параметрах tf label см. в разделе Label Command (Team Foundation Version Control).
К началу
Получение списка наборов отложенных изменений (действие QueryShelvesets)
Действие QueryShelvesets используется для получения списка наборов отложенных изменений, удовлетворяющих указанным критериям. Затем можно использовать действие TfUnshelve для получения содержимого всех наборов отложенных изменений.
Результат QueryShelvesets (IList<Shelveset>)
Свойства-аргументы действия QueryShelvesets
VersionControlServer (VersionControlServer). Необходимо указать VersionControlServer.
Действие TfGet
Это действие создает оболочку Команда Get.
Действие TfResolve
Это действие создает оболочку Resolve Command.
Действие TfShelve
Это действие создает оболочку Команда Shelve.
Действие TfUndo
Это действие создает оболочку Команда undo.
Действие TfUnshelve
Это действие создает оболочку Команда Unshelve.
Действие TfWorkfold
Это действие создает оболочку Workfold Command.
Использование рабочих элементов
Для работы с рабочими элементами можно использовать следующие действия Team Foundation Build:
Связывание наборов изменений и наборов рабочих элементов с построением
Создать рабочий элемент
Создание рабочего элемента (действие OpenWorkItem)
Действие OpenWorkItem предназначено для создания рабочего элемента.
Свойство Result действия OpenWorkItem (WorkItem)
Возвращает новый рабочий элемент.
Свойства-аргументы действия OpenWorkItem
AssignedTo (String). Необходимо задать лицо, которому требуется назначить рабочий элемент.
Title (String). Необходимо задать название рабочего элемента.
Type (String). Необходимо задать тип рабочего элемента. Обычно значение свойства Type включает следующие варианты: “Bug”, “Issue” и “Task”.
Comment (String). Это свойство позволяет добавить комментарий к журналу рабочего элемента.
CustomFields (IDictionary<String,String>). Это свойство позволяет задать значение одного или нескольких дополнительных полей рабочего элемента.
К началу
Работа с символьными данными
Для работы с символьными данными в Team Foundation Build предназначены два действия: IndexSources и PublishSymbols.
Обычно они используются для поддержки отладки IntelliTrace. Если требуется включить отладку IntelliTrace, необходимо сначала вызвать действие IndexSources для подготовки символьных данных пользователя, после чего вызвать действие PublishSymbols для публикации данных в хранилище символов SymStore.
Дополнительные сведения об отладке IntelliTrace см. в разделе Отладка приложения путем записи выполнения кода с помощью IntelliTrace.
Внедрение версий и путей системы контроля версий в символьные данные PDB-файлов (действие IndexSources)
Действие IndexSources можно использовать для внедрения версий и путей системы контроля версий в символьные данные в PDB-файлах.
Свойства-аргументы действия IndexSources
FileList (IEnumerable<String>). Необходимо задать полный путь и имя каждого символьного файла. Предоставить этот аргумент можно с помощью действия FindMatchingFiles.
Параметр ** служит для указания на рекурсивный поиск. Например, можно вызвать действие FindMatchingFiles со следующим значением свойства MatchPattern: String.Format("{0}\**\*.pdb", BinariesDirectory).
К началу
Публикация символов в хранилище символов SymStore (действие PublishSymbols)
Действие PublishSymbols предназначено для публикации символьных данных, находящихся в PDB-файлах, в хранилище символов SymStore. Это действие представляет собой программу-оболочку для SymStore.exe. Дополнительные сведения о хранилищах символов SymStore и их подготовке см. в разделе Индексация и публикация символьных данных.
Важно!
Если параллельные построения попытаются опубликовать данные в общих символьных файлах, данные могут быть повреждены.Для уменьшения этого риска следует вызывать действие только внутри действия SharedResourceScope.
Свойство Result действия PublishSymbols (String)
Возвращает идентификатор транзакции, возвращаемый программой SymStore.exe.
Свойства-аргументы действия PublishSymbols
FileList (IEnumerable<String>). Необходимо задать полный путь и имя каждого символьного файла. Предоставить этот аргумент можно с помощью действия FindMatchingFiles.
Например, можно вызвать действие FindMatchingFiles со следующим значением свойства MatchPattern: String.Format("{0}\**\*.pdb", BinariesDirectory).
StorePath (String). Необходимо задать UNC-путь к корневому каталогу хранилища символов SymStore.
CommandLineArguments (String). Сведения о дополнительных аргументах, которые можно передавать программе SymStore.exe, см. в разделе о параметрах командной строки SymStore.
Comments (String). Это свойство позволяет задать комментарии к транзакции, которые записываются в файл журнала транзакций в хранилище символов. Это свойство является аналогом параметра /c Comment команды SymStore.exe. Дополнительные сведения см. в разделе о параметрах командной строки SymStore.
ProductName (String). Это свойство позволяет задать имя продукта, которое записывается в файл журнала транзакций в хранилище символов. Например, можно задать это свойство равным имени определения построения (Name), которое можно получить из свойства BuildDefinition, вызвав действие GetBuildDetail. Это свойство является аналогом параметра /t Product команды SymStore.exe. Дополнительные сведения см. в разделе о параметрах командной строки SymStore.
StoreCompressed (Boolean). Если значение этого свойства равно True, файлы в хранилище символов хранятся сжатыми. В противном случае файлы хранятся несжатыми. Это свойство является аналогом параметра /compress команды SymStore.exe. Дополнительные сведения см. в разделе о параметрах командной строки SymStore.
Version (String). Например, можно задать это свойство равным номеру определения построения (BuildNumber), который можно получить, вызвав действие GetBuildDetail. Это свойство является аналогом параметра /v Version команды SymStore.exe. Дополнительные сведения см. в разделе о параметрах командной строки SymStore.
К началу
Получение ссылок на полезные объекты
С помощью действий Team Foundation Build можно получать ссылки на полезные объекты.
Получение ссылки на объект коллекции командного проекта (действие GetTeamProjectCollection)
Действие GetTeamProjectCollection позволяет получить из свойства Result ссылку на объект TfsTeamProjectCollection. Это важный начальный объект. Например, его можно использовать для подключения к серверу уровня приложений для Team Foundation.
Получение ссылки на объект IBuildAgent (действие GetBuildAgent)
Действие GetBuildAgent позволяет получить из свойства Result ссылку на объект IBuildAgent. Это действие можно использовать только внутри действия AgentScope.
Получение ссылки на объект IBuildDetail (действие GetBuildDetail)
Действие GetBuildDetail позволяет получить из свойства Result ссылку на объект IBuildDetail. С помощью этого объекта можно получать, а при некоторых обстоятельствах и задавать, данные о текущем построении.
К началу
Получение ссылки на объект BuildEnvironment (действие GetBuildEnvironment)
Действие GetBuildEnvironment позволяет получить из свойства Result ссылку на объект BuildEnvironment. Это свойство обычно применяется для выполнения следующих задач:
Объект Environment используется для определения, запущена ли данная часть построения на контроллере построений или на агенте построения.
Объект CustomAssemblyPath используется для получения пути к сборкам на агенте построения, содержащим пользовательские действия.
К началу
Действия, изменение которых не предполагается в настраиваемом процессе сборки
В настраиваемом процессе сборки не предусмотрено изменение некоторых действий.
ApproveRequestForCheckIn
Это действие следует игнорировать.
К началу
Действие CreateWorkspace
Это действие следует игнорировать.
К началу
Действие DeleteWorkspace
Это действие следует игнорировать.
К началу
GenerateRunSettings
Это действие следует игнорировать.
К началу
GetApprovedRequests
Это действие следует игнорировать.
К началу
GetPendingChanges
Это действие следует игнорировать.
К началу
GetRejectedRequests
Это действие следует игнорировать.
К началу
GetReshelvedShelveset
Это действие следует игнорировать.
К началу
GetShelvedChanges
Это действие следует игнорировать.
К началу
GetWorkspace
Это действие следует игнорировать.
К началу
ParseWorkspaceSpec
Это действие следует игнорировать.
К началу
RejectRequestFromCheckIn
Это действие следует игнорировать.
К началу
RetryRequest
Это действие следует игнорировать.
К началу
RetryRequests
Это действие следует игнорировать.
К началу
RevertWorkspace
Это действие следует игнорировать.
К началу
RunOnce
Не описывается в текущем выпуске.
SyncWorkspace
Это действие следует игнорировать.
К началу
SynchronizeRequests
Это действие следует игнорировать.
К началу
Действие TfsBuild
Это действие следует игнорировать.
К началу
TfQueryConflicts
Это действие следует игнорировать.
К началу
См. также
Основные понятия
Использование шаблона по умолчанию для процесса сборки
Развертывание и настройка контроллера сборок
Развертывание и настройка агентов сборки