LINUX.ORG.RU

Jenkins для pet projects

 ,


0

1

Хочу завести Jenkins (для побаловаться) поверх VPS'ки.

Сколько ему потребуется памяти от виртуалки, чтобы собирать небольшие проекты? Например, простые Hello world от Android Studio.

Deleted
Ответ на: комментарий от Rastafarra

Проект на 3 человека (предмет - Разработка на Kotlin под Android). 2 человека (я и одногруппник) в локалке общаги. Третий - вне общаги. Внешних сетевых адресов нет ни у кого (возможности даже купить - тоже, разве что Yota заводить, что так себе вариант).

Хочется поиграться с CI с dev и master веток на GitHub'е.

Проект будет 100% opensource (вероятнее всего - GPLv3), так что наверно заведу альтернативу в виде Travis CI. Но хотелось бы уметь развертывать полное окружение для разработки самостоятельно, т.е. GitLab/Gitea/cgit + Jenkins + Jira/Bugzilla/Youtrack с полной интеграцией между собой.

А то выпускаюсь. Бакалавр, типа. А руками мало что могу сделать на данный момент (по факту полного сопровождения проекта).

В теории как управлять проектом - знаем. На практике - проект даже в 30к строк на 4 человека становится очень сложно поддерживаемым (мы его пилили, обсуждая всё на словах в прошлом году, в результате превратить в конфетку не смогли, ибо в кодовой базе в конце разбираться стало очень сложно, архитектура раза 3 переписывалась, куча неиспользуемого кода, куча архитектурных [!!!] багов, не говоря уж про баги реализации). И это печально. Хотелось бы нормально уметь сопровождать проект.

Deleted
()
Последнее исправление: merhalak (всего исправлений: 1)
Ответ на: комментарий от Deleted

GitLab/Gitea/cgit + Jenkins + Jira/Bugzilla/Youtrack с полной интеграцией между собой.

хохо, тут гигов 6 надо просто чтоб оно на холостых тарахтело ))

На практике - проект даже в 30к строк на 4 человека становится очень сложно поддерживаемым

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

Rastafarra ★★★★
()
Ответ на: комментарий от Deleted

GitLab/Gitea/cgit

Уж лучше Mercurial научитесь использовать.

Jenkins

В этом комбайне количество плагинов уменьшите до необходимого минимума.

iZEN ★★★★★
()
Ответ на: комментарий от iZEN

Уж лучше Mercurial научитесь использовать.

Хороший способ избавиться от растущих конкурентов, но вряд ли ТС такой дурачок.

anonymous
()
Ответ на: комментарий от anonymous

Я спокойно использовал ртуть, когда было надо. Не думаю, что смена VCS вообще может от кого-либо «избавиться».

И процентов 90 - что мы друг другу не конкуренты, все в разные области уйдём.

Deleted
()
Ответ на: комментарий от Rastafarra

хохо, тут гигов 6 надо просто чтоб оно на холостых тарахтело ))

Жизнь - боль.

Получается, надо заложить траты под 1к в месяц на дедик, если хочется так поиграть. Придётся больше работать, что ещё сказать. :)

Deleted
()
Ответ на: комментарий от t184256

Больше интересует CI (автосборка ветки + прогон тестов).

Насколько я в курсе, CI и в гитлабе есть (правда есть ли в Community версии)? Кстати, ты пользовался?

А Jira/Bugzilla - ибо хотелось бы иметь зависимости у задач, а в GitHub/Gitlab issue deps нема, разве что через #номерДругойЗадачи помечать, что та еще наркомания.

Deleted
()

Jenkins'у не бывает много памяти. Очень зависит от количества проектов и плагинов.

sT331h0rs3 ★★★★★
()
Ответ на: комментарий от Deleted

https://dou.ua/lenta/articles/mercurial-vs-git/

Mercurial делает командную работу честнее (никто не может нарушить историю коммитов), проще (нет смысла в использовании зубодробительных команд) и надёжнее (толкование странных поступков отдельных личностей иключается).

iZEN ★★★★★
()
Последнее исправление: iZEN (всего исправлений: 1)
Ответ на: комментарий от iZEN

Mercurial делает командную работу честнее (никто не может нарушить историю коммитов)

Я сервер с git не настраивал, но помню что на ветки можно было запретить переписывать историю через конфиг, две основные ветки с такой защитой, все личные - нет.

Aber ★★★★★
()

Дженкинс это кончено хорошо, но помню пользовал до jenkins коммерческий тул teamcity, очень приятный, лучше дженкинс, только там в бесплатной версии было ограничение на 20 проектов, по этой причине в фирме где я работал и перешли на jenkins.

Aber ★★★★★
()
Ответ на: комментарий от iZEN

Для чего и для кого?

Вот смотри: я и соседний девелопер работаем над слегка смежными задачами. Этот девелопер на своей ветке сделал полезную мне utility-вещь, но его ветке до мержа в мастер ещё далеко. Я тащу его коммит, встраиваю в свою историю, вливаю в мастер. Он делает rebase от мастера. Все довольны.

Как это вообще выглядит с hg?

x3al ★★★★★
()
Ответ на: комментарий от iZEN

Вкусовщина, в общем.

Однако я и практически все знакомые вокруг в основном используем Git (за редким исключением в виде Subversion в старых проектах).

Вот почему я и дальше буду использовать Git.

Deleted
()
Ответ на: комментарий от x3al

Всё зависит от поставленного процесса разработки, инструменты для этого есть:

См. hg graft.

> hg graft -h
hg graft [OPTION]... [-r REV]... REV...

копировать изменения с другой ветки в текущую

    Эта команда использует возможности слияния Mercurial, чтобы скопировать
    отдельные изменения из других веток без полного слияния веток в графе
    истории. Иногда эту операцию также называют 'бэкпортирование'
    ('backporting') или 'cherry-picking'. По умолчанию graft копирует имя
    автора, даты и описание из ревизии-источника.

    Наборы изменений, являющиеся предками текущей ревизии, и к которым уже
    была применена операция graft, а также ревизии слияния будут пропущены.

    Если указан --log, к журнальным сообщениям будет добавлен комментарий
    вида:

      (перенесено из ХЭШРЕВИЗИИ)

    If --force is specified, revisions will be grafted even if they are
    already ancestors of, or have been grafted to, the destination. This is
    useful when the revisions have since been backed out.

    Если во время операции graft возникает конфликт, операция отменяется для
    того, чтобы текущее слияние было завершено вручную. После разрешения всех
    конфликтов, можно продолжить процесс с помощью параметра -c/--continue.

    Примечание:
       The -c/--continue option does not reapply earlier options, except for
       --force.

    See 'hg help revisions' for more about specifying revisions.

    В случае успеха возвращает 0.

options ([+] can be repeated):

 -r --rev РЕВИЗИЯ [+]   ревизии для переноса
 -c --continue          возобновить прерванную операцию graft
 -e --edit              вызвать редактор для создания сообщения фиксации
    --log               добавить информацию о переносе в журнальное сообщение
 -f --force             force graft
 -D --currentdate       использовать текущую дату в качестве даты фиксации
 -U --currentuser       использовать текущего пользователя как автора фиксации
 -d --date ДАТА         использовать эту дату в качестве даты фиксации
 -u --user ПОЛЬЗОВАТЕЛЬ использовать этого пользователя как автора фиксации
 -t --tool ЗНАЧЕНИЕ     задать инструмент слияния
 -n --dry-run           ничего реально не делать, просто напечатать вывод

(some details hidden, use --verbose to show complete help)
iZEN ★★★★★
()
Последнее исправление: iZEN (всего исправлений: 1)
Ответ на: комментарий от Aber

Как вариант.

Честно говоря, я бы в идеале завёл Gitlab + его же CI.

А вот для постановки задач не хватает функциональности зависимостей между ISSUES. Хорошо, что есть объединение ISSUES в MILESTONE (хотя бы распланировать задачи на неделю/две вперёд можно).

Deleted
()
Ответ на: комментарий от Deleted

2 человека (я и одногруппник) в локалке общаги. Третий - вне общаги. Внешних сетевых адресов нет ни у кого

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

Тут регулярно какие-то одноевровые хостинги советуют, например.

thesis ★★★★★
()
Последнее исправление: thesis (всего исправлений: 1)
Ответ на: комментарий от Deleted

Ты круто взялся, ты стажировку проходил в фирме?

Проект на 3 человека (предмет - Разработка на Kotlin под Android). 2 человека (я и одногруппник) в локалке общаги. Третий - вне общаги.

Три человека это уже команда, выработали ли вы code conversions, чтоб не писать в разнобой?

Aber ★★★★★
()
Ответ на: комментарий от Aber

Я работаю (правда сейчас уменьшил до четверти ставки, пока с дипломом непонятки).

Так то уже год в апреле будет, как работаю.

Хочу повысить скиллы, чтоб можно было по поводу повышения спокойно подойти. Летом, думаю, надо будет ещё заняться прохождением сертификации Java от Oracle.

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

Deleted
()
Ответ на: комментарий от thesis

Черт.

Спасибо тебе. Эт я редкий тормоз, что не дошёл до такого самостоятельно.

Через vpn ведь не сложно будет настроить маршруты, чтобы только до gitlab'а ходил, а в инет не пытался ползти?

Хотя, с другой стороны, на конфигурацию всей этой радости потрачу уйму времени. Надо ещё подумать, как мне будет выгоднее.

Deleted
()
Последнее исправление: merhalak (всего исправлений: 1)
Ответ на: комментарий от Deleted

Может тебе что-то вроде taiga.io попробовать? Там как раз для трех человек бесплатно.

Jira - это суровый комбайн уровня большой конторы от 200 человек. По ней можно отдельные курсы проходить, и её основная польза - красивые отчеты для начальства составлять.

А для трех человек достаточно trello или чего-то такого аналогичного, чтобы заниматься задачами, а не администрированием трекера и дашбордов к нему.

alpha ★★★★★
()
Ответ на: комментарий от alpha

И jira в разных конторах по разному настроена, да и вроде дорогая штука, помню что за интеграцию vcs нужно было отдельно платить. Хотя слышал что для oss они вроде бесплатные лицензии раздают.

Aber ★★★★★
()
Ответ на: комментарий от alpha

Мало того, вместо трелло можно использовать доски в гитлаба. Вместо Дженкинса cicd в гитлаба. И не ставить гитлаб на локалхост, а использовать облачный. А 12 тыщ в год пробухать.

stave ★★★★★
()

Такой топик, а ответа так никто и не дал. Подними в докере, с лимитом гигабайт работает напряжно, 2 гига нормально. Агентов можно использовать на бесплатных инстансах Амазона.

stave ★★★★★
()

Предлагаю посмотреть в сторону CI от gitlab. Не хуже Дженкинса, дают 2000 минут в месяц под билды, из коробки есть docker registry и прочие плюшки ci/cd

duck
()

У меня работал такой jenkins на 512MB RAM, самом дешевом тарифе у digitalocean. Тормозило но работало. Андроид собирать не советую, но мелочи работали.

С другой стороны - CI вам при ваших проблемах не поможет, надо пилить на модули, рисовать архитектуру, API, обмазывать тестами. Как только это сделаете, и каждый научится делать make test перед коммитами, тогда можно заморачиваться CI с глубоким тестированием. А так вы потратите деньги на то, чтобы узнать что что-то не собралось, что мог бы узнать и тот, кто коммит делал. Вот будет нужно что-то серьёзно проверить, типа сборку под 3 ОС с установкой и удалением и будет команда человек в 20, тогда и нужно этим заморачиваться. В вашем случае CI будет только отнимать время и нифига не облегчать разработку.

slapin ★★★★★
()
Ответ на: комментарий от slapin

Боюсь до команды в 20 человек мне ещё жить и жить, а представлять, как оно выглядит изнутри - хочется.

С точки зрения пользователя системы это слабо понятно. Как бы у меня и на работе есть git + jira + jenkins + sonar с интеграцией между ними, но как с этим добром полноценно работать мне ещё не понятно, поэтому и хотел повозиться самостоятельно в учебном проекте.

Просто для повышения собственной квалификации, не для облегчения разработки.

Понятное дело, что введение CI будет отнимать больше времени на очень маленьком проекте, чем жизнь без него.

Deleted
()
Ответ на: комментарий от slapin

Мне не Andoid собирать надо, а приложение под него ;) Что-то не сильно сложнее простенького калькулятора выражений (в первой версии написал «инженерного калькулятора», потом задумался, а не переборщил ли я).

Deleted
()
Последнее исправление: merhalak (всего исправлений: 1)
Ответ на: комментарий от Deleted

Ну жаба же, да, выжирает. Можно посидеть потюнить, мож получится. Я андроид собирал хитро - у DO есть on-demand запуск как на S3, я ставил плагин digital ocean в jenkins и стартовал по требованию узлы. При редких билдах не дорого, а можно сразу 8-16 гигов поднять на несколько часов. Для одного приложения требования меньше, значит можно попробовать обойтись вторым слейвом на минималке. Заодно научишься понимать как большие CI работают :)

S3 это дорого очень, DO в разы дешевле, думаю стоит попробовать если есть немного денег. Если жаба душит, можно просто свой VPN поднять на 3 компа, и в него же загнать на отдельном компе. На той же самой дешевой виртуалке с openvpn (проверить что в terms of service VPN разрешен) и даже его морду можно на той же виртуалке гонять, а слейва поставить у себя.

slapin ★★★★★
()
Последнее исправление: slapin (всего исправлений: 1)
Ответ на: комментарий от slapin

Не думаю, что билды будут чаще, чем 14 раз в месяц. Да и приложение не вырастет выше десятка activity.

Во сколько мне примерно обойдется это в месяц?

В общем то готов закидывать до 800 рублей в месяц. На jenkins - master хватит + сборки на DO?

Просто при стоимости от 1к мне будет выгоднее арендовать что то вроде Celeron 2/2 + 8G RAM + 120G SSD у Selectel'а.

Deleted
()
Последнее исправление: merhalak (всего исправлений: 2)
Ответ на: комментарий от slapin

Я так понимаю, Gitlab CI Runner - это аналог Jenkins slave instance?

Deleted
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.