Можно ли поставить в очередь рабочие процессы сборки-развертывания-тестирования в TFS 2010?

Я использую рабочий процесс сборки Build-Deploy-Test для TFS 2010 (см. здесь http://msdn.microsoft.com/en-us/vstudio/gg131922.aspx) и просто хотел бы знать, есть ли способ поставить один или несколько из них в очередь для запуска в той же тестовой среде?

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

Мое решение работает большую часть времени, но иногда я сталкиваюсь с условиями гонки, и оба рабочих процесса пытаются запуститься одновременно, один из них «выигрывает» и сначала возвращает среду к готовому к тестированию моментальному снимку.

Как вы понимаете, это плохое решение, но быстрое! Есть ли правильный способ поставить в очередь рабочие процессы сборки-развертывания-тестирования в среде?


person andrew_scfc    schedule 11.12.2013    source источник
comment
К сожалению, на сегодняшний день нет лучшего способа сделать это.   -  person allen    schedule 11.12.2013
comment
Спасибо, Аллен, я понимаю, как это будет сложно реализовать; в основном потому, что рабочий процесс Build-Deploy-Test сам создает другую сборку!   -  person andrew_scfc    schedule 12.12.2013


Ответы (1)


В TFS 2010 это невозможно сделать «из коробки»; это подтвердил Аллен из Microsoft (см. комментарии).

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

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

person andrew_scfc    schedule 15.12.2013