Выбор лучшей CI/CD системы на основе имеющихся требований (интеграция с Gitlab, Docker, Protractor и т.д.)

Кто-нибудь поможет в создании сравнительной таблицы для нашего проекта? =) (извините за наглость, но может и кому то еще полезно будет!)

Требования к CI/CD

1. Прогон unit-тестов
2. Прогон Nunit
3. Прогон protractor-тестов
4. Развёртывание окружения из Docker и разных веток разных подсистем?
5. Аналитика менеджеров пакетов
6. Интеграция с Gitlab (хуки на пуши, и pull/merge requests)
7. Возможность аппрува для выкладки на какое-либо окружение?
8. Сбор различных данных по проекту(соблюдение кодстайла, покрытие тестами) и отображение их в удобном виде.

Сравнение выбранных решений

* TeamCity
* Jenkins
* Bamboo
* GitlabCI
* Strider-CD (http://www.stridercd.com)

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

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

1 лайк

То есть можно любую из данных систем в итоге настроить под соответвие требованиям и тупо можно брать любую?

Совершенно верно.

То есть можно любую из данных систем в итоге настроить под соответвие требованиям и тупо можно брать любую?
Практически, да.
Задача CI системы - засунуть руки в управляемый хост и сделать там всё, что угодно.
Что конкретно будет делаться - зависит от окружения (библиотеки, фреймворки, …), а не от того, какая конкретно CI система используется. Так что рекомендую отталкиваться от соображений лицензирования и окружения в первую очередь.

Teamcity слишком замудреный и платный, Jenkins бесплатный и для него много разных плагинов, ну и простой как 2 рубля :slight_smile: Если планируете использовать или уже используете Gitlab, тогда наверное лучше взять GitlabCI для лучшей интеграции. А вообще, что больше понравится, то и используйте. Как написали выше, любой из них можно настроить под свои нужды.

А чего там замудренного?
Насчет платы, до 10 акк бесплатно, можно ограничиться даже тремя (релиз менеджре, тестер, разработчик - как вариант)

Gitlab - используем уже и давно, совсемстно с Jira

GitlabCI - тоже вроде платный?

Ну мне после Jenkins он показался таким. По поводу Gitlab CI, судя по информации с оф. сайта он open source :smile: Если у 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, то он уже кроссплатформенный, и уже не так важно, что за система стоит на сервере.