Я пытаюсь внедрить непрерывную доставку в организации, где в настоящее время у нас недостаточно возможностей для выполнения всех тестов на всех коммитах.Ниже приведен упрощенный, вымышленный сценарий с выдуманными номерами, иллюстрирующий проблему.
![Continuous Delivery Pipeline](https://i.stack.imgur.com/JPyFE.png)
Представьте приведенный выше конвейер.У нас есть возможность запускать этап фиксации для всех коммитов, отчасти потому, что он был спроектирован для быстрого выполнения, а отчасти потому, что мы смоделировали все дорогостоящие части среды, поэтому для его запуска не требуется дорогостоящее оборудование.Фактически, я даже могу запустить его локально на своем ноутбуке.
С другой стороны, приемочные тесты занимают около 6 часов, и это время увеличивается, поскольку мы внедряем все больше функций, требующих тестирования.Они работают против производственной среды, которая стоит 1 миллион долларов в год, поэтому мы получаем только один из них.
У нас около 20 коммитов в день, и обычно они все в рабочее время, поэтому реалистично, в течение днямы могли бы выполнить приемочные тесты для первого коммита, последнего коммита и коммита, который произошел через 6 часов после первого коммита.Мы просто не можем запустить приемочные тесты для каждого коммита.
Сегодня этап фиксации - это отдельная работа, выполняемая для каждого коммита, приемочные тесты - это другая работа, которая выполняется ночью, и развертывание в рабочей среде.это ручной процесс, которому предшествует обширное ручное тестирование.Приемочные испытания всегда нарушены.Релизы производятся не из master, а из веток кандидатов на релизы, которые проходят не менее месяца тестирования и исправления ошибок перед выпуском.Иногда у нас даже есть несколько таких одновременно, потому что один релиз не закончился до того, как начался следующий запланированный выпуск.
Я отчаянно хочу исправить наш сломанный процесс выпуска, введя конвейер непрерывной доставки.В настоящее время у меня нет решения по поводу недостатка емкости, но пропуск этапов, основанный на пропускной способности, выглядит как путь вперед.Я действительно не сомневаюсь, что это возможно, учитывая гибкость Дженкинса, но я изо всех сил пытаюсь найти ресурсы, как это сделать.Я жестко запрограммировал пропуск в конвейере (используя when
) для создания скриншота, так что не принимайте это как доказательство того, что я решил проблему.