Кто-нибудь поможет в создании сравнительной таблицы для нашего проекта? =) (извините за наглость, но может и кому то еще полезно будет!)
Требования к CI/CD
1. Прогон unit-тестов
2. Прогон Nunit
3. Прогон protractor-тестов
4. Развёртывание окружения из Docker и разных веток разных подсистем?
5. Аналитика менеджеров пакетов
6. Интеграция с Gitlab (хуки на пуши, и pull/merge requests)
7. Возможность аппрува для выкладки на какое-либо окружение?
8. Сбор различных данных по проекту(соблюдение кодстайла, покрытие тестами) и отображение их в удобном виде.
В итоге сейчас перед командой стоит задача накидать такую табличку, и я буду рада любым замечаниям. Плюс может быть какие требования выбраны неправильно, какие то упущены.
Могу сразу сказать, таблицу можно зарубить, т.к. все зависит от того как вы настроите задание и будут ли у вас скрипты и/или плагины для реализации этих пунктов.
То есть можно любую из данных систем в итоге настроить под соответвие требованиям и тупо можно брать любую?
Практически, да.
Задача CI системы - засунуть руки в управляемый хост и сделать там всё, что угодно.
Что конкретно будет делаться - зависит от окружения (библиотеки, фреймворки, …), а не от того, какая конкретно CI система используется. Так что рекомендую отталкиваться от соображений лицензирования и окружения в первую очередь.
Teamcity слишком замудреный и платный, Jenkins бесплатный и для него много разных плагинов, ну и простой как 2 рубля Если планируете использовать или уже используете Gitlab, тогда наверное лучше взять GitlabCI для лучшей интеграции. А вообще, что больше понравится, то и используйте. Как написали выше, любой из них можно настроить под свои нужды.
Ну мне после Jenkins он показался таким. По поводу Gitlab CI, судя по информации с оф. сайта он open source Если у gitlab что-то и есть платное, то это скорее всего плата за хостинг VCS и CI у них.
Для интересующихся системой автоматизированной разработкой CI&CD (Непрерывная интеграция и непрерывная доставка) и кто хочет освоить принципы настройки, внедрения, тестирование и организацию процессов с помощью CI&CD - могу посоветовать уникальные онлайн курсы по изучению linux и организация процессов разработки CI&CD (DevOps). Ссылка на курсы https://linuxtrainingcenter.com.
В программу обучения входит изучение инструментов Git, Jenkins, AWS на русском языке - что является основой для системы CI&CD. Здесь все обучение проходит на русском языке и с получением практического опыт по всем темам - что очень важно для будущей работы.
Курсы подходят как для начинающих, так и для профессионалов в it сфере.
Попробуйте!
Если у вас .Net project, вижу название NUnit, то больше подойдет сервер с Виндовс, и ТимСити лучше работает с такими проектами. Если же проект на .Dot net core, то он уже кроссплатформенный, и уже не так важно, что за система стоит на сервере.