by

Where communities thrive


  • Join over 1.5M+ people
  • Join over 100K+ communities
  • Free without limits
  • Create your own community
People
Repo info
Activity
    Oleg Nenashev
    @oleg-nenashev
    @KostyaSha что мы сделали не так? :D
    Kanstantsin Shautsou
    @KostyaSha
    бездумно обновляете все подряд, зачем вообще дженкинсу обратная совместимость бинарная если невозможно старше 3х месяцев поставить плагин тк все прибито к самым свежим ядрам/плагинам?
    либа плагин? Да, самый последний патчсет надо притянуть!
    Oleg Nenashev
    @oleg-nenashev
    Ты вообще о ком и о чем? D
    Alex Nikulin
    @anikulin
    нет ли у кого хороших примеров shared pipelines? ну типа когда есть типовой пайплайн для сборки джавы и все его импортируют.
    Kanstantsin Shautsou
    @KostyaSha
    а есть ли типовой вариант java проекта без костылей и извращений в сборке?
    Alex Nikulin
    @anikulin

    а есть ли типовой вариант java проекта без костылей и извращений в сборке?

    а почему нет? чекаут, mvn clean install, mvn sonar:sonar, дальше либо docker build либо mvn deploy

    Kanstantsin Shautsou
    @KostyaSha
    ./mvnw clean deploy потом кеши уникальные для джоба/бранча (которых нет у дженкинса), пачка конфигов на всякие прокси зеркала, сонар давно не юзал и т.д. Но это все шелл на который не надо время, шарить и иметь логику в Jenkinsfile вместо билд скрипта имеет смысл только для того что интегрирует рюшечки всякие в UI типа отображения версии, promotion
    Alex Nikulin
    @anikulin

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

    это все шелл, да, но это реально 100-150 строчек идентичных jenkinsfile в куче репозиториев

    Kanstantsin Shautsou
    @KostyaSha
    деплой нужен если модули хоть как-то связаны в разных проектах
    Alex Nikulin
    @anikulin
    мне бы вообще хватило одного дженкинсфайла, которому в джобе можно передать линк на репо и название проекта (для красоты). но дженкинс так не умеет. если определить в гуе параметр - линк на репо, он перепишется из пайплайна в следующий же запуск
    Kanstantsin Shautsou
    @KostyaSha
    в одном джобе билдить разные проекты?
    Alex Nikulin
    @anikulin
    а если таки пайплайн с параметрами то его не получится сделать shared, вроде бы

    в одном джобе билдить разные проекты?

    в разных джобах, но одним пайплайн-скриптом

    Kanstantsin Shautsou
    @KostyaSha
    ну так шаред либс какк ты и спрашивал, помести туда и подтягивай из всех Jenkinsfile?
    Alex Nikulin
    @anikulin
    да, так получается что во всех проектах все равно свой jenkinsfile с как минимум чекаутом и вызовом либы.
    неаакуратно
    Victor Verbitsky
    @vektory79

    Ну у меня Jenkinsfile вообще вот так выглядит:

    @Library('jenkins-pipeline-lib') _
    buildMultibranchProject("project-dist", 'prj-build', true)

    И я в упор не помню когда в последний раз менял его :-)

    Правда тут целая пачка хитростей под капотом, но это уже другой разговор :-)
    Alex Nikulin
    @anikulin
    @vektory79 вот я как раз пример хотел посмотреть ) мне примерно так надо
    Alex Nikulin
    @anikulin
    а еще, у меня multibranch pipeline не прибивает за собой старые воркспейсы и приходится чистить руками...
    Victor Verbitsky
    @vektory79
    Ну мы за мультибранчем тоже сами кроном подчищаем.
    А выложить примеры... Ну я к этому движусь, но это не так-то просто и никаких сроков назвать не смогу...
    Victor Verbitsky
    @vektory79
    @anikulin пока могу только сказать в общих чертах. Завёл в репо глобальный конфиг, в котором перечислил все проекты по именам и для каждого проекта прописываются настройки: URL на репо, кому репортить на ошибки, какие артифакты сохранять после билда и т.п.
    В результате мне остаётся просто указать какой проект и с каким селектором нод собрать и всё уже само разматывается и собирается.
    Волков Сергей
    @DcWolfserik_twitter
    Всем привет. Кто нибудь знает нормальный способ балансировки джоб, которые написаны в виде пайплайна? аналог heavy plugin
    Victor Verbitsky
    @vektory79
    Тоже интересует этот вопрос, т.к. сейчас всё на глаз настраиваем.
    @DcWolfserik_twitter можно ещё тут спросить: https://t.me/jenkins_ru ;-)
    Волков Сергей
    @DcWolfserik_twitter
    Спасибо за ссылку, посмотрю. Я уже перерыл весь инет, ничего не смог найти толкового. Пробовал создать фейовую джобу с весом, не пайплайн, дёргать её внутри пайплана с указанием веса, чтобы эммитировать загрузку, но не нашел инструмента, как эту джобу абортить внутри пайплайна.
    пока что то нет идей больше
    Victor Verbitsky
    @vektory79
    @DcWolfserik_twitter Ну уж если настолько заморачиваться, то можно ещё и в эту сторону поглядеть: https://plugins.jenkins.io/lockable-resources/
    Волков Сергей
    @DcWolfserik_twitter
    я так понял, что без заморочек не выйдет, нормального же плагина нет для пайпланов
    Victor Verbitsky
    @vektory79
    просто представить ресурсы нод, как абстракцию для этого плагина и всперёд. Но это тоже пальцем в небо, т.к. джоба запросто может сильно отклоняться в обе стороны
    Волков Сергей
    @DcWolfserik_twitter
    да, я смотрел в сторону локабл ресурсов, но что-то не зашло на первый взгляд
    просто думал может я такой тугой, фича кажется супер важной
    неужели нет нормального решения в комьюнити
    Victor Verbitsky
    @vektory79
    Пока не видел...
    Alex Nikulin
    @anikulin
    @vektory79 а, то есть подчистка за мультибранчем это нормально. а как чистите? он названия воркспейсов до 32 символов обрезает, регулярку просто так не написать )
    @DcWolfserik_twitter а в чем суть балансировки нод?
    Волков Сергей
    @DcWolfserik_twitter
    @anikulin суть в том, что разные джобы жрут разное количество ресурсов,
    Kanstantsin Shautsou
    @KostyaSha
    надо думать как указать джобе есть 2-3 экзекутора
    Anatoliy Anatoliy
    @dynamo265_twitter
    Привет. Помогите пожалуйста Please protect ports used by ChromeDriver and related test frameworks to prevent access by malicious code.
    Alex Nikulin
    @anikulin
    всем привет. тоже вопрос про балансировку. или я неправильно ищу, или ищу не то, но я так и не понял, как сделать чтобы locable resources делились по агентам? например Resource1 есть в количестве 1 на каждом агенте. Хочется чтобы джобы при запуске это понимали и не просто ждали освобождения ресурса, а шли на тот агент, где этот ресурс свободен. так нельзя сделать, да?
    Kanstantsin Shautsou
    @KostyaSha
    через плагин который по слейвам мог ограничивать ресурсы наверное можно... там джоб к группе можно было отнести. Но точно не помню
    Anatoliy Anatoliy
    @dynamo265_twitter
    Привет.Помогите пожалуйста [SEVERE]: bind() failed: Cannot assign requested address (99)
    Victor Verbitsky
    @vektory79
    Порт занят другим приложением. Кого-то загасить надо :-)
    Волков Сергей
    @DcWolfserik_twitter
    parallel build_1: {
        build job: 'some_job'
    }, build_2: {
        build job: 'some_job'
    }
    failFast: false
    у меня такой код стартует один и тот же билд, это нормально?)) то есть some_job запускается не 2 билда, а 1. Выглядит дико, или я что то не понимаю
    Kanstantsin Shautsou
    @KostyaSha
    параметризируй джобы чтобы их очередь не склеивала
    Terdunov Vyacheslav
    @vterdunov
    есть желание помониторить Дженкис. в частности ГЦ, хип. Есть прометеус и графана. Погуглил немного и для jvm нашёл jmx exporter. кто-то этим пользовался? или кто как мониторит? плагин для метрик в формате прометеуса особенно не подходит, так как Дженкинс периодчески (раз в неделю) подыхает, судя по всему от долгих ГЦ. Добавил ГЦ лог в журнал, и смотрел через сайт easygc. Но хочется как-то проактивно и в реалтайме смотреть в графане.
    Kanstantsin Shautsou
    @KostyaSha
    точно так же как и любая другая jvm прилага
    ну и еще на дедлоки мониторинг