«Зависимость от моментального снимка» и триггер «Готовая конструкция» очень разные. одна из них в основном является «нажатием», а другая - «тяговым», соответственно.
Setup 1: Если я построить конфиги и B где B имеет "Закончено сборки" триггер , то противоположное поведение верно. Срабатывание B не будет иметь никакого влияния на , но запуск будет эффективно вызывать B, когда он закончил.
Setup 2: Если у меня есть точно такая же установка, но вместо B имеет зависимость снимок на , то всякий раз, когда B срабатывает, будет работать первым, или, по крайней мере, проверить чтобы проверить, нужно ли его запускать, перед запуском B. IF только А запускается, тогда B не будет запущен.
Setup 3: Setup-немного отличается, потому что это не просто зависит от «Закончено сборки» триггера или зависимости снимки. он также зависит от начального триггера (VCS, запланированного или любого другого). например, если у вас есть VCS триггер и B имеет как «Закончено сборку» триггер и «моментальные снимки» зависимость от , то вы эффективно получить поведение установки 1. будет получить срабатывание при изменениях VCS и B будет запущен ПОСЛЕ A (с использованием того же моментального снимка).На самом деле, без установки моментального снимка, не гарантируется, что B будет использовать тот же снимок, что и A, который может быть или не быть тем, что вы хотите.
В общем, если вы хотите запустить триггер «слева направо», вы используете BOTH готовые триггеры сборки и зависимости моментальных снимков, чтобы гарантировать святость залога сборки.
Если, с другой стороны, у вас есть свой первоначальный триггер (VCS или по расписанию или любой другой) установки на B, затем с «закончил строить» спусковой крючок несколько сведены на нет, потому что B всегда будет срабатывать первым (но не запускается), а затем он будет запускать все свои зависимости и автоматически запускаться после их завершения.
надеюсь, что это поможет. благодаря!
Спасибо за подробное объяснение. В моей ситуации параметры совместного доступа и дефицитный ресурс очень редки, поэтому я, скорее всего, по умолчанию будет использовать только зависимость моментального снимка (setup 2) и использовать комбо (setup 3), если требуется определенное поведение, требуемое для разных корней VCS. –
Не могли бы вы уточнить в настройке 3, будет ли выполняться дважды, если у зависимостей snapshop есть опция «Не запускать новую сборку, если есть подходящая» ** UNCHECKED **? как и в ... что-то вызывает А, когда А завершается, _Finished Build_ запускается и пытается помещать B в очередь, THEN _Snapshot Dependency_ запускает и помещает очередь A в очередь до того, как B поставлен в очередь. Он НЕ помещает другой A в очередь, когда я тестировал эту установку, но я думал, что это теоретически. Имеет ли TeamCity внутреннюю логику, чтобы игнорировать шаг очередности зависимостей моментальных снимков, если существует триггер готовой сборки? –
Даже если этот флажок не установлен, я не думаю, что A должен быть переустановлен. Это было бы ужасно непрактично, и я не могу придумать никого, кто может пожелать этого поведения. (Я думаю, вы тоже не хотите этого поведения, вам просто интересно, что этот вариант делает, если не * это *.) Я полагаю, что этот вариант делает это: kick A, let B trigger. Оба они запустили один раз. Теперь вручную запускайте только B, без изменений кода со времени последней сборки B. Должен ли это снова активировать A или нет? Вот где этот вариант играет. – sferencik