Continua CI: как использовать конфигурацию?(DailyBuild + Release) - PullRequest
0 голосов
/ 11 октября 2018

У меня следующая проблема, и, к сожалению, в Интернете ничего не найдено.

Я использую Continua CI в качестве BuildServer.У меня есть конфигурация DailyBuild.

Теперь должен быть создан выпуск с CI Continua.По сути, фактический процесс сборки будет таким же, как у DailyBuild, ему просто нужно будет запустить другие конфигурации раньше.

Возможно ли это?

Выпуск конфигурации будет таким, как Config 1 + Config 2+ DailyBuild Config

Нужно ли заново создавать три конфигурации (источник ошибок) или есть другая возможность?

Какова ваша структура для DailyBuild, Patch and Release на BuildServer?

Я надеюсь, что вы можете помочь мне или показать мне новые способы реализации этого.

Спасибо!

1 Ответ

0 голосов
/ 18 октября 2018

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

Я бы порекомендовал использовать одну отдельную конфигурацию со сценой для каждой части процесса сборки.Затем вы можете использовать этап Пропустить условия , этап Повышение условий или 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.

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

...