
Sergey
24.08.2017
13:43:22
кста, ктонибудь нахлобучку blueocean на jenkins использует?

Федя
24.08.2017
13:49:18
слишком много плагинов за собой тянет
как показала практика, чем меньше плагинов в женьке, тем стабильнее его обновления

Google

Anton
24.08.2017
13:50:01
И тормозит ощутимо

Федя
24.08.2017
13:50:37
в идеале оставлять только pipeline
и все ими делать
на грувях

Sergey
24.08.2017
13:51:05
эх, если бы
все и так работает хоршо, но этот blueocean прям вжух вжух - красивый.
столько лет jenkins выглядел как jenkins, а тут - на тебе

Федя
24.08.2017
13:52:46
да пайпы тоже неплохи\
всмысле внешнего вида

Sergey
24.08.2017
13:54:12
все равно они jenkins'оватые

Федя
24.08.2017
13:54:22
https://jenkins.io/projects/blueocean/roadmap/
+ очень много еще нереализовано в них
кро дрона юзает?

Google

Федя
24.08.2017
13:57:35
чо как он? drone.io

The mirror
24.08.2017
14:07:54
лично мне нравится, простенький и удобный, разрабы сами пишут конфигурации для него
еще есть коммьюнити в гиттере, где всегда могут помочь

Kaspar
24.08.2017
14:10:53
это saas?

bebebe
24.08.2017
14:56:47
на грувях
вы пробовали это делать?
бггг я столько боли натерпелся с этими groovy скриптом
там как бы проблема такая, там не груви, а чувак в плагине нарисовал свой лексический парсер, еще один велосипед
и когда я активно его трогал зимой, и делал ООП на грувях
начинается самые приколы, например в конструкторе класса вызов собственного приватного метода ведет к бесконечной рекурсии которую сложно отдебажить
я к автору этого плагина в irc пришел, раз, второй, третий, он как бы говорил, что итерироваться по списоку элементов for'ом нельзя бггг и прочие прохладные истории
в итоге на четвертый раз я его спросил, как жи вы эту боль терпите, на что он ответил, что это не продакшн реди

Федя
24.08.2017
15:04:34
Пробовали, но без ООП
Работает отлично
А что за плагин был?

Dmitry
24.08.2017
15:08:33
только for'ом и можно гарантированно проитерировать список
https://issues.jenkins-ci.org/browse/JENKINS-26481 эта дрянь до сих пор не пофикшена в лтс
а уж дебаг пайплайнов - отдельная увлекательная история

bebebe
24.08.2017
15:10:06

Oleg
24.08.2017
15:10:12

bebebe
24.08.2017
15:11:42
А что за плагин был?
https://issues.jenkins-ci.org/browse/JENKINS-46145?jql=project%20%3D%20JENKINS%20AND%20status%20in%20(Open%2C%20%22In%20Progress%22%2C%20Reopened)%20AND%20component%20%3D%20%27workflow-cps-plugin%27

Федя
24.08.2017
15:11:48
А, я то думал из под грувей с каким то другим плагином работал

bebebe
24.08.2017
15:11:56
как бэ
я реально с ним боли натерпелся
и главное что автор говорит что это еще не пока продакш реди (инфа конец зимы этого года)
в итоге вместо баша который был
стал баш обернутый в груви

Федя
24.08.2017
15:12:42

Google

Федя
24.08.2017
15:13:32
Баш обернутый в груви это нормально ИМХО
Там как бы соль в том, что у тебя в репе есть Jenkinsfile, и у тебя получается IaS

Dmitry
24.08.2017
15:14:48
зачем тогда груви? баш, обернутый в груви не верифицируется стайл-чекерами

bebebe
24.08.2017
15:15:07
основная проблема по словам автора плагина в том, что дженкинс выставляет некую state control machine, через которую идет интеграция с groovy-plguinином
это типа дженкинс выполняет джобу, на каждом шагу сохраняет стейт, если дженкинс повалится или перезапустится, типа джоба пойдет с того этапа, на котором дженкинс наебнулся
в этом концептуальная проблема groovy-cps-plugin'а
поэтому автору, jglick его помойму зовут, приходится писать свой лексический парсер для груви, попутно оставляя в нем баги, что по списку можно итерироваться только определенным способом
т.е. нельзя взять груви документацию и фигать по ней в дженкинсе
все это печально

Dmitry
24.08.2017
15:16:12
кстати
>если дженкинс повалится или перезапустится
в 10% случаев джобы виснут по непонятной причине

bebebe
24.08.2017
15:16:13
пруфы на ишуи - выше

Artem
24.08.2017
15:16:50
:-)

bebebe
24.08.2017
15:17:29
я пробовал для кубернетеса написать ООП объект, который его деплоит, оно в каком-то виде даже работало, но я потратил нереальное количество времени на это, и в итоге ООП был хромой на одну ногу, т.к. нельзя его использовать как есть, а подстравиться под ограничения cps плагина

Федя
24.08.2017
15:19:59
Нюансы в написании скриптов на груви в женьке конечно есть, не отрицаю, но все в итоге работает как надо, если не усложнять сборку ООП'ом, процедурного стиля хватает за глаза там

bebebe
24.08.2017
15:24:55
это на вскидку
там еще отдельная тема, что есть groovy pipeline library, которая позволяет перед запуском джобы безусловно забирать пайплайн library из SCM
так вот писечка вся в том, что код который подтягивается из SCM, и код который написан в теле джобы выполняется в разных CPS контекстах
и то что написано в библиотеке, нельзя скопипасть as is в джобу, т.к. оно начнет валиться с разнообразные трейсами, которые понятны чуть менее чем полностью
а если много раз такую джобу запускать, у дженкинса немного течет крыша и CPS машина может взять стейт от предыдущего запуска или как то так
наелся я этого говна достаточно, и не советую


Федя
24.08.2017
15:29:33
Если выложим на гитхаб наши наработки по пайпам, обязательно дам ссылку
Нас они изо дня в день радуют
В хорошем смысле

Google

Федя
24.08.2017
15:30:52
Точнее, мы планируем их выложить, но надо причесать сначала

bebebe
24.08.2017
15:31:54
https://issues.jenkins-ci.org/browse/JENKINS-34645
вот например посмотрите как люди не могут в массив после сплита
или вот
https://stackoverflow.com/questions/27509344/groovy-each-only-iterates-one-time
с @NoNCPS - это отдельная и долгая история

Dmitry
24.08.2017
15:33:40
вот, я и говорю
>classic for loop
наше всё
шаг в сторону - здравствуй грабли

Федя
24.08.2017
15:33:41
Массивы это сложно для пайплайнов

Admin
ERROR: S client not available

Федя
24.08.2017
15:33:45
Не нужны они там

dk
24.08.2017
15:33:52

bebebe
24.08.2017
15:34:05
например нельзя в грувях использовать regex'ы без обертки @NonCPS, так парсинг regex'а уже выходит за рамки CPS машины
да, и люди которые все таки рискую использовать этот workflow-cps-plugin, в большинстве своем так и говорят, что лучше не выебываться, и делать просто
в этом случае для меня ускользает громадная доля смысла к прикручиваю groovy к дженкинсу

Федя
24.08.2017
15:36:11
Смысл пайпов в дженкинсе, это иметь возможность управлять сборкой из кода
Без надобности заходить и руками чото тыкать в женьке
Имхо
Согласитесь, оно того стоит?

bebebe
24.08.2017
15:37:34
wut? в правильном CI/CD руками тыкают очень мало, и то только тогда, когда что-то идет не так
на практике конечно, это редко встречается

Федя
24.08.2017
15:38:32

Dmitry
24.08.2017
15:38:57
имхо, мешать ci с кодом - плохая идея. во-первых дерево коммитов засирается, а во-вторых ci, размазанный по 100500 проектов - это не менеджится

Google

Artem
24.08.2017
15:39:18
а что можно почитать на тему teamcity + capistrano ?

Dmitry
24.08.2017
15:39:28
IaS замечательно реализуется через jjb без этих ваших пайплайнов

Федя
24.08.2017
15:39:37
Почему засирается?

bebebe
24.08.2017
15:39:51

Федя
24.08.2017
15:40:19
Отлаживать сборку можно без Jenkinsfile, и закомитить в него только когда все ок работает

Dmitry
24.08.2017
15:40:23
я имею ввиду код продукта с кодом инфры

Федя
24.08.2017
15:40:55
Эм
Докерфайл тоже в репе хранить не надо?

bebebe
24.08.2017
15:41:50
по идеи, часть модного направления, деливерить кастомеру не продукт, а CI/CD для продукта, который сам на мощностях кастомера крутится и периодически синкается с апстимом

Dmitry
24.08.2017
15:41:55
если он не имеет отношения к коду, зачем от там? отдельный проект под IaS

Федя
24.08.2017
15:42:02
Чото парни комитят файл gitlab-ci.yml и не жалуются

Dmitry
24.08.2017
15:48:15
пока у тебя пара пайплайнов на три проекта - оно не напрягает, это да. но как только количество проектов начинает расти...
я, вот, не представляю, как бы этот подход у нас работал. инфровая команда повесилась бы в полном составе

Федя
24.08.2017
15:49:48
Нам норм, и проектов много

bebebe
24.08.2017
15:50:48
У меня есть теория, что один из признаков нормальной инфры, это когда она может разделить раздеплоить саму себя

Федя
24.08.2017
15:54:06
3 чая этому господину!