Вы можете использовать Построить завершенные триггеры , чтобы запустить одну конфигурацию после завершения другой.Однако в настоящее время нет никакого способа запустить другую конфигурацию и дождаться ее завершения при запуске одной конфигурации.Планируется, что в будущем это станет возможным благодаря функции зависимостей.
Я бы порекомендовал использовать одну отдельную конфигурацию со сценой для каждой части процесса сборки.Затем вы можете использовать этап Пропустить условия , этап Повышение условий или If и Else действия, чтобы выбрать, какие этапы или действия будут выполняться на основе значений переменные и выражения .
Я предполагаю, что DailyBuild будет запущен Time Trigger , а сборки Patch и Release будут запускаться вручную или из репозитория.Trigger .Возможно, сборка Patch запускается определенной веткой или тэгом репозитория, а сборка Release запускается другой.Условия на этапах настройки могут либо проверять значение ветви или тега, например, $ Source.RepoName.Branch $ Equals 'Release' или $ Source.RepoName.LatestTagName $ StartsWith 'Patch', либо проверять значение переменной.Переменная может быть установлена вручную в диалоговом окне Параметры очереди при запуске сборки или с помощью триггера, как указано на вкладке Переменные Редактировать триггер .
В вашем сценарии, где у вас есть «Config 1 + Config 2 + DailyBuild Config» для конфигурации выпуска, я бы изменил это на «Stage 1 + Stage 2 + DailyBuild Stage».Каждая стадия 1 и стадия 2 будут иметь условие пропуска, проверяющее переменную, установленную триггером DailyBuild, например% TriggeredBy% Equals 'DailyBuild', или значение выражения $ Build.StartedBy $, например, $ Build.StartedBy $ Equals 'DailyBuildTrigger'.Это будет означать, что Этап 1 и Этап 2 будут выполняться, только если сборка не была запущена DailyBuildTrigger.
В качестве альтернативы, вы можете клонировать конфигурацию и редактировать ее для каждого процесса сборки, но я бы не рекомендовал делать это, так как труднее вносить изменения и поддерживать.