Процесс разработки с серверами непрерывной интеграции

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

В настоящее время у нас есть следующее: 0. BitBucket в качестве исходного репо 1. Team City 2. Сервер ProGet 3. Развертывание Octopus 4. Тестирование разработки vm 5. Тестирование UAT vm 6. Производство vm

В общем процесс идет

  1. Элемент списка
  2. Проверьте решение от BitBucket
  3. Вносить изменения.
  4. Передать в Bitbucket
  5. Team City Builds
  6. Team City передает артефакты в ProGet в виде пакетов nuget
  7. Team City создает выпуск в Octopus Deploy и запускает автоматическое развертывание в Development Test vm.
  8. Ручной толчок осьминога в UAT
  9. Ручной толчок осьминога в производство

Все с верхнего уровня выглядит хорошо для всех, кроме нас, разработчиков.

Наша проблема не в концепции, а в том, чтобы жить с процессом. Причина в том, что у нас есть два решения, где второе ссылается на пакет nuget первого решения с нашего сервера ProGet. Это означает, что каждый раз, когда зависимому решению требуется модификация в первом решении, мы должны ждать, пока не произойдет цикл, и затем обновлять пакет nuget во втором, чтобы завершить необходимые изменения.

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

Я хотел бы разработать оба решения на компьютере разработчика, не дожидаясь, пока CI создаст и опубликует измененный пакет. Это, я думаю, означает, что DLL из первого решения будет ссылаться локально, но как я могу изменить это, чтобы окончательная ссылка была получена с сервера ProGet, который будет построен на CI box?

Может кто-нибудь сказать мне, как это сделать?

1 ответ

Этот рабочий процесс может стать довольно сложным; мы видим, как многие пользователи переходят на более подход "инфраструктура как код".

Рассмотрим это руководство. Развертывание ASP.NET и приложений-служб Windows с помощью Otter. Идея состоит в том, что при создании решения с помощью MSBuild (либо в режиме Release на вашей рабочей станции, либо в TeamCity) создается файл пакета (UPack или NuGet, но не иметь значение).

Затем, как разработчики, вы можете добавить шаг для использования Otter Romp для локальной настройки / развертывания этого пакета и обычного Otter для обеспечения наличия пакета / конфигурации в других средах. Таким образом, это последовательный подход для разработки и тестирования на локальном уровне.

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

Смотрите также: KB # 1114 - Сравнение: Octopus Deploy vs Otter

__

Отказ от ответственности, моя дневная работа в Inedo:)

Другие вопросы по тегам