Как надежно настроить непрерывную доставку? - PullRequest
1 голос
/ 18 апреля 2019

Установка:

  • Личное мастер-репо, и у каждого разработчика есть своя собственная вилка.
  • В настоящее время используется CircleCI, но мы будем рады перейти на удовлетворение требований
  • Филиалы в главном репо защищены с ограничениями на слияние

Требования:

  • Сборка + тест по разветвленным запросам на выгрузку
  • Развертывание в различных средах на основе обновлений ветки главного репо
  • Не всем разработчикам можно полностью доверять с учетными данными

Частичное решение:

  • Включение создания и передачи секретов по разветвленным запросам на извлечение ( Ссылка )
  • Используйте контексты CircleCI для установки переменных среды для каждой ветви. Это позволяет использовать разные цели развертывания.

Проблемы:

  • Все специфические секреты репо, а также все глобальные контексты теперь доступны любому, кто может открыть PR.
  • Даже если мы отключим сборку по разветвленным пулл-запросам, любой, имеющий доступ на запись хотя бы к одному репо, сможет получить доступ ко всем глобальным контекстам.

Вопрос:

  • Кажется, это очень распространенный вариант использования. Как это решают другие компании?
  • Разве CircleCI не подходит для этого? - Нет, это не так (см. Ниже).
  • Должны ли мы создать собственное решение?

Edit1:

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


Edit2:

Я также связался с TravisCi и SemaphoreCi, и похоже, что только TravisCi поддерживает создание разветвленных PR и не пропускает в них секреты ( Reference ).

В SempahoreCi отсутствует (1) создание разветвленных PR и (2) сокрытие секретов на этапе развертывания в неосновных рабочих процессах

CircleCi имеет ограниченный контекст , но для этого потребуется ручное изменение рабочих процессов. Определенно нелегко настроить, и я не до конца понимаю, как они будут работать.

...