Возможно, что Step 2 Nightly - это не определение сборки, это консольное приложение, которое:
- Извлекает последнюю последующую сборку
- Извлекает двоичные файлы этой сборки израсположение сброса сборки
- Выполняет тесты и, в зависимости от их успеха (или нет), выполняет определенные действия (например, отправка электронных писем или применение метки в системе контроля версий).
Эти действия также могут быть выполнены в сильно настроенном шаблоне процесса сборки, где основные этапы сборки, такие как CreateWorkspace и Run MSBuild, отрублены, и вышеуказанная логика реализована вручную.
На вашем месте я бы пошел на C #консольное приложение, которое использует TFS-SDK, выполняет вышеперечисленное и запускается один раз в день.
РЕДАКТИРОВАТЬ
Принимая во внимание ваши комментарии,Я не понимаю, почему мое предложение убирает вас с конвейера сборки.
В любом случае, сердце и шаг Step2 (по крайней мере, в моем понимании) состоит в том, чтобы извлечь местоположение отбрасывания предыдущей успешной сборки и затем выполнить некоторые действия над находящимися там двоичными файлами.
Этопоиск может выглядеть примерно так:
using System;
using Microsoft.TeamFoundation.Build.Client;
using Microsoft.TeamFoundation.Client;
namespace GetDropLocationOfLastGoodBuild
{
class Program
{
static void Main()
{
TfsTeamProjectCollection tpc =
TfsTeamProjectCollectionFactory.GetTeamProjectCollection(
new Uri("TFSURI"));
IBuildServer buildService = (IBuildServer) tpc.GetService(typeof (IBuildServer));
IBuildDefinition buildDefinition = buildService.GetBuildDefinition("TeamProject", "BuildDefinitionName");
Uri buildUri = buildDefinition.LastGoodBuildUri;
IBuildDetail buildDetail = buildService.GetAllBuildDetails(buildUri);
String binariesOfLastGoodBuild = buildDetail.DropLocation;
}
}
}
После извлечения места сброса вы сможете начинать любые запланированные действия.
Все необходимые данные находятся в buildDetail
.
Теперь это может выполняться как пользовательская операция сборки с сильно настроенным шаблоном процесса сборки или как отдельное запланированное консольное приложение.
Лично я бы сделал последнее и настроил бы его с помощью планировщика задач Windows, чтобы он выполнялся один раз в день на моем сервере сборки.