Я исследовал различные инструменты и варианты CI / CD для моего конкретного случая использования в течение нескольких месяцев, но чем больше я искал, тем больше я запутался.
Вот что я пытаюсь выполнить:
У меня есть 3 репозитория на github (TCP-сервер, приложение ASP.NET MVC, сценарии MySQL).
- Создание коммита
- Код перетаскивается из GitHub намой сервер OVH для Windows 2012
- Код построен
- Выполнены модульные тесты (NUnit)
- Служба TCP-сервера обновлена, файлы конфигурации обновлены, служба перезапущена
- Сценарий обновления MySQL запущен для базы данных
- Тесты MyTap выполняются для базы данных для проверки миграции
- Протрите Redis DB все данные с определенным префиксом (т. Е. Ключи, начинающиеся с 'prod')
- Обновление приложения IIS с последним встроенным кодом, обновление конфигурации, перезапуск пула приложений
- Запуск интеграционных тестов для базы данных (NUnit)
- Выполнение конечных тестов конца 2 (NUnit)
- Выполните тесты Selenium against asp.net application
- Интеграция с GitHub и создание отчетов о состоянии, отправка электронной почты в случае сбоя любого шага
Я пытался найти что-то бесплатное, так как это всего лишь личный проектЯ работаю над тем, чтобы я не мог позволить себе дополнительные серверы или какой-либо платный облачный хостинг.Я полагаю, что некоторые из этих требований выходят за рамки некоторых опций CI / CD, поэтому мне, возможно, придется свернуть некоторые из них самостоятельно.
Но я хотел бы сначала подумать о том, какие у меня есть варианты?Я посмотрел на Travis CI, но меня беспокоит совместимость .NET, учитывая, что они используют mono / msbuild для Linux.Я также посмотрел на Дженкинса, но я не знаю, сможет ли он справиться с моими требованиями и насколько сложно будет все это настроить.
У меня очень мало работы с CI / CD, поэтому я 'были потеряны при поиске решений.Большинство рассмотренных мною решений дороги, не работают на Windows, не очень хорошо поддерживают .NET или не поддерживают дальнейшие настройки.