2014-02-14 3 views
2

У нас есть конфигурация сборки в TeamCity с 3 шагами сборки. Есть ли способ предотвратить выполнение шага 2 для личных сборок, чтобы обычные триггеры VCS выполняли шаги 1, 2 и 3, но только 1 и 3 выполняются для личных сборок?Как предотвратить шаги сборки для личных сборок

Существует переменная BUILD_IS_PERSONAL установлен верно для личного строит, но он не определен, если не: http://confluence.jetbrains.com/display/TCD8/Predefined+Build+Parameters

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

ответ

0

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

IF "%%BUILD_IS_PERSONAL%%"=="" (
rem do stuff 
) 

То, что я не хватало был избегая синтаксиса переменной TeamCity с дополнительным «%».

0

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

+0

Как вы могли бы запретить пре-коммит переходить в конфигурацию с включенным шагом 2? – psych

5

BUILD_IS_PERSONAL - обычная переменная среды. Он устанавливается только в том случае, если сборка является личной. Ваш шаг сборки может проверить наличие этой переменной и немедленно выйти, если она определена.

Для Unix оболочки нечто подобное должно работать:

if [ -n "$BUILD_IS_PERSONAL" ]; then 
    echo "Build is personal, exiting" 
    exit 0 
fi 
+0

+1 Это указывало мне в правильном направлении. Я добавил свой ответ за то, как я его исправил. – psych

+1

Если длина строки отлична от нуля (-n, not -z), то это личная сборка. Пожалуйста исправьте. – mixel

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