Архитектура сборки TFS - PullRequest
1 голос
/ 10 июля 2009

Я готовлюсь перенести управление исходным кодом моей команды с VSS на TFS 2008.

Это для веб-сайта asp.net, и в настоящее время я использую комбинацию скриптов Nant и Cruise Control для выполнения всех сборок и развертываний.

Я пытался обдумать, как лучше всего спроектировать сборку TFS, чтобы сделать то же самое, что я делаю с NANT и круиз-контролем, но я не могу определить лучший подход.

Вот мои требования:

  1. Когда код достигает определенной точки, я вручную применяю к ней метку.
  2. Этот помеченный код необходимо создать и развернуть в любой из 25 различных сред разработки, контроля качества или рабочей среды.
  3. Любая из этих 25 сред может быть в любой текущей или прошлой версии приложения с маркировкой.
  4. Мне нужно иметь возможность развернуть любую помеченную версию приложения в любой из сред.

В настоящее время я выполняю вышеупомянутое, используя NANT для выполнения сборки и используя Cruise Control, чтобы просто передать параметры командной строки, для которых необходимо создать и развернуть среду (ы). У меня есть файл конфигурации Nant со списком всех моих сред, и соответствующий ярлык, который каждая среда должна использовать в настоящее время. Этот файл обновляется вручную при создании новой метки.

Я знаю, что подход, который я использую для NANT, вероятно, не будет таким же, как с Team Build, но кто-нибудь делал что-то подобное с Team Build и мог бы поделиться, как вы этого добились?

Ответы [ 2 ]

2 голосов
/ 11 июля 2009
  1. Маркировка в TFS намного надежнее, чем в VSS. Когда вы создаете ярлык, вы можете создавать на основе набора изменений, даты, версии рабочей области, чёрт, даже другой ярлык . (Кстати, я перехватил ссылку и наткнулся на это сообщение , которое вы можете найти актуальным.)

  2. По умолчанию Team Build будет собираться из последней версии кода в исходном коде, но вы можете переопределить цель "CoreGet" в сборке, чтобы создать определенную версию. Аарон Холлберг (Джон Скит из TFS) показывает пример здесь .

  3. см. 4.

  4. У меня лично не было этого сложного требования, но я сделал нечто подобное. Когда вы ставите в очередь сборку, вы можете передать любое количество параметров несколькими важными способами: 1) через файл ответов и 2) во время очереди ( простой пример здесь ). В любом случае двумя параметрами могут быть среда и номер метки / версии. В моем текущем проекте у меня включена непрерывная интеграция, поэтому, когда код в рабочей области включен, текущий код автоматически помечается, извлекает подробные данные для моего места размещения из файла ответов, а затем развертывается в соответствующем месте.

Учитывая тот факт, что у вас ~ 25 сред и n версий / меток, вы можете создать простой графический интерфейс, который считывает текущие метки через TFS API и позволяет вам выбрать, какую версию собирать в конкретная среда.

0 голосов
/ 16 ноября 2009

Чтобы ответить на этот вопрос, я решил использовать комбинацию пользовательской задачи сборки, круиз-контроля и msbuild.

Пользовательская задача сборки позволила мне получить последнюю версию из определенной ветки и метки.

Круиз-контроль позволил мне передать конкретную информацию для конкретной сборки в MSbuild, используя файл конфигурации, но начать сборку из пользовательского интерфейса.

msbuild использовался как обычно, однако вызывался из круиз-контроля, и большая часть работы выполнялась пользовательской задачей сборки.

...