Задать вопрос
lis355
@lis355
Программирую бота для автоматизации на NodeJS

Хочу нати подходящую CI/CD, какую выбрать?

Делаю проект на NodeJS (бек+фронт), настал момент, когда нужно настроить автоматический сбор билдов.
Я до этого не работал с CI/CD, видел только Jenkins на прошлой работе.
У меня есть несколько "требований/желаний", и из-за этого мне сложно выбрать систему. Банально потому что такие вещи сразу не пишут в документации, а брать что-то одно, разбираться пару дней и понять, что не подходит - странно.

* Локальный сервер, обязательно

* Т.к. у меня все написано на node js, то было бы круто иметь возможность скрипты писать тоже на js. Я так понимаю,
можно просто вызывать командные файлы (работаю на Windows) и запускать скрипты из ноды, тогда это не проблема

* Нужно чтобы определенные билды собирались по определенным триггерам, типа ключевых слов в коммите мастер-бранча. Например, если в коммите есть [project1] v1.2.0 то запускается билд project1, а если [project2] v1.3.0 то, естественно, project2.

* Нужно чтобы можно было сформировать сообщение из сообщений коммитов, до предыдущей версии.
Т.е. например, я пишу в коммите [project1] v1.0.1 - нужно собрать текст из всех коммитов, до версии 1.0.0, которые помечены текстом[project1]. Вполне возможно, что это какойто велосипед и нормальные люди делают по-другому - буду рад совету!

Пример бранча с коммитами:
[project1] v1.0.1
[project1] fix: пофиксил кое что
[project2] new: сделал тото
[project1] new: сделал другое
[project1] v1.0.0

В итоге я должен получить сообщение только относящиеся к project1
v1.0.1
fix: пофиксил кое что
new: сделал другое

* После билда сообщение с коммитами нужно отправить в телеграмм бота (опять же, я сам напишу скрипт в который надо это сообщение как-то передать)

Буду рад совету по любому пункту!
  • Вопрос задан
  • 136 просмотров
Подписаться 1 Средний Комментировать
Пригласить эксперта
Ответы на вопрос 2
@vitaly_il1
DevOps Consulting
Все это можно сделать на Jenkins.
возможность скрипты писать тоже на js
  - как вы и сказали, вызывать внешние скрипты.

Будет ли все это проще сделать на GitLab CI/CD или Azure DevOps? - я их очень слабо знаю, не могу сравнить.
Ответ написан
Комментировать
@Vitsliputsli
1) Локальный сервер и CI/CD никак не связаны.
2) Вы можете написать свой CI/CD на js. Либо использовать любое популярное решение и из него запускать скрипты js, не встречал чтобы так делали, но почему бы и нет.
3) Разные проекты хранят в разных репозиториях, это основные принципы пользования системами контроля версий.
4) Обычно в готовых решениях есть автоматически формируемые списки изменений, по-сути список коммитов отличающих текущий билд от предыдущего. Но "до версии 1.0.0" это что-то странное, если только сами это сделаете.

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

Советовать что-либо сложно, т.к. на мой взгляд система странная. Обычно разные проекты располагаются в разных репозиториях, так удобнее. Версии вешают тегами и собирают билды зачастую именно по тегам, хотя бывает и по веткам тоже.
Ориентируясь на фразу "Делаю проект на NodeJS (бек+фронт), настал момент, когда нужно настроить автоматический сбор билдов" хочется спросить, а зачем вам вообще CI/CD, нужно автоматизировать сборку - автоматизируйте, зачем нужен CI/CD?
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы