2013-04-30 2 views
2

В настоящее время у нас есть «довольно» скрипт MSBuild CI, который строится на TeamCity.TFS agnostic MSBuild Script

Скрипт выполняет следующие действия:

  1. версии сборки атрибуты с помощью TeamCity сборки номера
  2. компилирует решение
  3. пробегов набора модульных тестов с использованием NUnit
  4. Запускает набор акцепта тесты с использованием NUnit и SpecFlow
  5. Производит некоторую документацию с использованием соленья
  6. Хранит артефакт ы
  7. Этикетки/Метки пересмотра в GIT с текущим номером сборки

Я говорю «довольно» CI агностик, потому что есть несколько мест, которые мы издаем содержание в TeamCity через задачу сообщения MSBuild.

Теперь нам дали направление от бизнеса, чтобы переместить сборку и источник из GIT в TFS. Последний элемент управления Microsoft, которым я пользовался, был SourceSafe, и у меня нет опыта работы с TFS в качестве сервера CI. Я хочу знать, можем ли мы сохранить скрипт MSBuild как агностик, как он есть в настоящее время, и по-прежнему достичь той же функциональности, что и сейчас.

ответ

2

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

Вы можете передать динамические параметры в MSBuild, отредактировав шаблон сборки (или статические параметры, отредактировав определение сборки).

Для управления версиями я обычно настраиваю шаблон сборки для создания версии # формата Major.Minor.YYMM.DDRRRR, где Major и Minor - это аргументы, заданные в определении сборки. YYMMDD - это дата, а RRR я извлекаю из компонента TFS BuildNumber Revision (что # build для этой сборки def сегодня).

Я использую TFSVersion для TFS Build Activity из TFS Community Build Extensions, чтобы обновить все мои AssemblyInfo, но если у вас уже есть процесс управления версиями в MSBuild, вы можете просто создать желаемую версию # в шаблоне сборки, а затем передать ее как аргумент к вашей деятельности MSBuild.

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

+0

Итак, что касается управления версиями, мы можем ввести tfs в параметр msbuild, содержащий номер сборки и, если возможно, номер версии TFS (или что-то еще в мире TFS)? Как бы вы опубликовали артефакты в TFS через MSBuild? – Bronumski

+0

Вы можете нажать статические параметры в MSBuild, отредактировав определение сборки. Если вы хотите перейти в динамические параметры (например, TFS Build #), вам, вероятно, придется отредактировать шаблон сборки. TFS имеет BuildID (int) и BuildNumber, который является строкой в ​​формате, который вы можете настроить в Build Def (по умолчанию это $ (BuildDefinitionName) _ $ (Date: yyyyMMdd) $ (Rev :.r) –

+0

У меня есть начало сборки, мне пришлось сделать небольшую настройку из-за того, что компании полностью блокировали среду сборки, в результате чего не было доступа к NuGet. Кроме того, он выполнил сборку. То, что мне нужно сделать, - это вернуть результаты NUnit обратно в TFS, чтобы он мог отображать результаты и, если нужно, отказываться от сборки. – Bronumski

Смежные вопросы