Подход к непрерывному развертыванию для Asp.Net-MVC

Политики удаленных клиентов не позволяют мне публиковать из моей среды разработки непосредственно на их сервере. Я удален в среду и копирую опубликованные артефакты (Asp.Net-MVC) в тестовую среду. Процесс развертывания между различными средами (Build/Test/Staging/Production) в настоящее время выполняется вручную, что занимает много времени и подвержено ошибкам.

Я знаю, что есть инструменты, которые уже существуют и рассматривали несколько решений для CI и CD, но многие из них выглядят как излишние для того, что я хочу в данный момент. Посмотрел Дженкинса, Осьминога, MSDeply, PSDeploy, Robocopy и других, чтобы назвать некоторых, но теперь я не уверен, какой путь выбрать. Читайте о подходе непрерывного развертывания, которого я в конечном итоге хочу достичь, поскольку я действительно стараюсь не изобретать велосипед, и напишите свой собственный инструмент развертывания, который является неприятной привычкой, которую я пытаюсь сломать, учитывая множество шляп, которые мне нужно носить.

Любой совет, как автоматизировать этот процесс на автономном сервере? На этом этапе основное внимание уделяется перемещению файлов, а не миграции баз данных.

Спасибо

2 ответа

Решение

По своей сути CI-сервер - это всего лишь средство выполнения задач. Jenkins - отличный CI-сервер с открытым исходным кодом и множеством плагинов.

Для простых веб-развертываний вам просто нужно раскрыть исходный код, выполнить сборку с использованием MSBuild, а затем выполнить развертывание с использованием профиля публикации.

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

msbuild someproject.sln /p:DeployOnBuild=true /p:PublishProfile=Prod

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

Даже для тех, у кого нет опыта, вы сможете настроить его за один день.

Почему бы не использовать Управление релизами? Это инструмент Microsoft, который подключается к TFS с помощью своего шаблона. Вам необходимо создать определение сборки, используя сервер сборки, для которого установлен CI, что означает, что каждая регистрация будет загружать код в необходимые среды в управлении выпусками. Вы можете создать шаг утверждения, на который будут загружены только утвержденные сборки. Чтобы включить разработку и проверки входов без загрузки элемента, просто создайте 2 ветки HEAD и DEV и поместите ваш слушатель ci (исходную папку) только в HEAD . Когда разработчик объединится с DEV в HEAD и вернется, файлы будут загружены.