TFSBuild: Как запустить сборку только при регистрации определенного файла?
У нас есть конкретный файл, скажем X.zip, который изменяется только одним или двумя людьми. Следовательно, мы не хотим, чтобы сборка запускалась при каждой регистрации, так как остальные файлы в основном не затрагиваются.
Мне нужно проверить условие перед сборкой, является ли проверенный элемент "X.zip" или нет.. если да, то вызвать сборку, иначе нет. Мы используем только сборки CI.
Любая идея о том, как вызвать сборку, только когда этот конкретный файл зарегистрирован? Любые другие подходы будут с благодарностью, так как я новичок в TFS...
Тара.
2 ответа
Я не знаю ни одной функции OOTB, которая могла бы сделать это, что вам нужно сделать, это написать свою собственную задачу MSBuild, которая выполняется до запуска сборки (действие перед сборкой).
Затем задача должна будет использовать TFS API, чтобы проверить текущую регистрацию для файла, который вы хотите, и если он не найден, вам придется установить задачу на неудачу.
Это на самом деле не идеально, так как это указывает Team Build на сбой сборки, который, в зависимости от того, используете ли вы политики регистрации, может оказаться бесполезным. С первого взгляда было бы сложнее определить, какая сборка не удалась из-за задачи, а какая - из-за реальной проблемы.
Вы можете изменить сборку так, чтобы она выполнялась реже, чем при каждой регистрации, что уменьшит нагрузку на сервер сборки.
В противном случае вы можете захотеть покопаться в Cruise Control .NET, он может поддерживать лучшие условные сборки.
Если бы вы могли переместить X.zip в его собственную папку, то вы могли бы настроить сборку CI с рабочим пространством, которое просматривало бы только папку, содержащую X.zip.
Затем вам нужно будет добавить явный вызов tf get для загрузки остальной части кода, поскольку Team Build загружает только то, на что смотрит рабочее пространство.
Но это может быть проще, чем индивидуальный подход к задаче?