TFSBuild: Как запустить сборку только при регистрации определенного файла? - PullRequest
1 голос
/ 26 августа 2009

У нас есть определенный файл, скажем, X.zip, который изменяется только одним или двумя людьми. Следовательно, мы не хотим, чтобы сборка запускалась при каждой регистрации, так как остальные файлы в основном не затрагиваются.

Мне нужно проверить состояние перед сборкой, является ли проверенный элемент "X.zip" или нет .. если да, то запустить сборку, иначе нет Мы используем только сборки CI.

Есть идеи, как запустить сборку, только когда этот конкретный файл зарегистрирован? Любые другие подходы будут с благодарностью, так как я новичок в TFS ...

Тара.

Ответы [ 2 ]

1 голос
/ 26 августа 2009

Я не знаю ни одной функции OOTB, которая могла бы сделать это, что вам нужно было бы написать свою собственную задачу MSBuild, которая выполняется до запуска сборки (действие перед сборкой).

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

Это на самом деле не идеально, так как это указывает Team Build на сбой сборки, который, в зависимости от того, используете ли вы политики регистрации, может оказаться бесполезным. С первого взгляда было бы сложнее определить, какая сборка не удалась из-за задачи, а какая - из-за реальной проблемы.

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

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

0 голосов
/ 04 мая 2010

Если бы вы могли переместить X.zip в его собственную папку, то вы могли бы настроить сборку CI с рабочим пространством, которое просматривало бы только папку, содержащую X.zip.

Затем вам необходимо добавить явный вызов tf get для загрузки остальной части кода, поскольку Team Build загружает только то, на что смотрит рабочее пространство.

Но это может быть проще, чем подход с пользовательской задачей?

...