2016-01-25 3 views
3

TLDR: Как я могу организовать его так, чтобы зависимость моментального снимка не запускала новые сборки?Зависимости моментального снимка TeamCity без запуска rebuild

Для выполнения моих тестовых процессов им необходимо запустить среду «Тест». Создание такой среды прост, но длительный; для завершения тестовой среды может потребоваться от 45 минут до часа. Кроме того, имя среды и другие такие переменные не фиксируются до тех пор, пока среда не закончит строительство.

В определении сборки TeamCity я мог бы поставить «построить среду, если отсутствует», как шаг сборки. Однако это означает, что первый тест дня займет 45 минут.

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

Когда выполняется новый тест, часто, похоже, вызывает перестроение создания тестовой среды.

Мы не хотим, чтобы это когда-либо случалось; создание тестовой среды «сделано» в течение дня и не нужно запускать снова до завтра. Как мы можем достичь этого?

+0

Нужна ли вам зависимость от моментального снимка? Единственная причина для этого - инициировать сборки зависимостей, но это то, чего вы пытаетесь избежать. –

ответ

0
  1. Вы уже триггер на основе времени => среда будет каждое утро
  2. Создать снимок Завис в вашем продукта конфигурации ТС (не в том, что тот, который готовит тестовую среду) и галочку "Не запускайте новую сборку, если есть подходящая. '
  3. Ваша конфигурация, используемая для настройки тестовой среды, не должна иметь никакого корня VCS (или указывать на какое-то спокойное место управления источником, где подача не будет). Для физической настройки вашей среды вам не нужно сопоставлять исходные коды и т. Д. - вы можете потреблять все, что необходимо, например, через ваши собственные пакеты NuGet.

Примечание: В этой последовательности действий каждого билда вашего реального проекта завербовать сборку конфигурации, которая устанавливает среду тестирования (так что физически в очереди сборки) но когда это превратить придумать будет сравнить изменения с момента last build => не отправляется на обнаруженный VCS (он указывает на спокойное место в SourceControl из-за шага 3)), и поэтому сборка будет пропущена в < 1s

+2

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

+0

Это действительно часто? Эти перестройки могут быть вызваны событиями, которые, по прогнозам TC, могут повлиять на вывод сборки (например, изменение конфигурации TC), в конфигурации TC, которая устанавливает «test env», также не должно быть никаких зависимостей Artifact/Snapshot. Он работает правильно для нас, чтобы собрать 80 проектов TC, расположенных по 5 слоям зависимостей без такой проблемы (9.1.4 build 37293). То, что вы описываете, похоже на ошибку в TC (заслуживающий отчета об ошибке) или проблему с вашим рабочим процессом. Вы видите что-нибудь интересное в случаях, когда сборки запускаются, и они не должны? –

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