Size: a a a

2020 October 13

M

Max.d 🤖 in jenkins_ru
Henry Chinaski
проблема в том, что реп 40+, и когда надо сделать какие-то правки, ты идёшь во все
ну, я об этом и говорю, рутину можно вынести в global shared library
источник

HC

Henry Chinaski in jenkins_ru
эх, ещё работы себе на пол года вперёд добавил. Зато идея годная
источник

VL

V L in jenkins_ru
Спасибо за ответы! Почерпнул новое.
источник

VL

V L in jenkins_ru
Еще вопрос.
Если у меня монорепа и мне надо на репы внутри сделать джобы, опять же по бранчам чтобы запускать на merge request - какой вариант организации посоветуете?
источник

VD

Viacheslav Dubrovsky... in jenkins_ru
Вопрос: А никто не видел плагина или расширения, который делает все то же самое что и parallel но можно указывать лимит сколько одновременно тредов обрабатывать?
источник

VD

Viacheslav Dubrovsky... in jenkins_ru
>меня монорепа и мне надо на репы
так моно или репы?
источник

DB

Dmitry Burmistrov in jenkins_ru
Viacheslav Dubrovskyi
Вопрос: А никто не видел плагина или расширения, который делает все то же самое что и parallel но можно указывать лимит сколько одновременно тредов обрабатывать?
источник

VL

V L in jenkins_ru
Viacheslav Dubrovskyi
>меня монорепа и мне надо на репы
так моно или репы?
монорепозиторий в котором много апликух
источник

VD

Viacheslav Dubrovsky... in jenkins_ru
нет, это не то. Это билды. А надо для пайплайна. Вот как https://www.jenkins.io/doc/pipeline/steps/parallel-test-executor/
источник

DB

Dmitry Burmistrov in jenkins_ru
Example 2: Throttling of parallel steps
источник

VD

Viacheslav Dubrovsky... in jenkins_ru
V L
монорепозиторий в котором много апликух
У нас такое.
Я сделал через матрицу, где разработчики описывают енв и все остальное что им нужно и все эти степы параллелятся.
например:
   envList.add("NODE=${nodeLabel} ORO_APP=application/commerce ORO_TEST_SUITE=functional ORO_PG=12.3 ORO_INSTALLED=commerce_1.0.0")
   envList.add("NODE=${nodeLabel} ORO_APP=application/commerce-enterprise ORO_TEST_SUITE=functional ORO_PG=12.3 ORO_INSTALLED=commerce_1.0.0")
   envList.add("NODE=${nodeLabel} ORO_APP=application/commerce-crm-ee ORO_TEST_SUITE=functional ORO_PG=12.3 ORO_INSTALLED=orocommerce-enterprise-application_3.1.2")
       for (int i = 0; i < envList.size() ; i++) {
         int index=i, e = i+1
          enviroments["TestEnv_${e}"] = {
           stage ("TestEnv_${e}"){
               withEnv(envList[index].tokenize()) {
что-то в енве
           }
         }
       }
      }
    parallel enviroments
источник

VL

V L in jenkins_ru
Пайплайн пачкой бежит на все приложения репозитория?
источник

VD

Viacheslav Dubrovsky... in jenkins_ru
да
источник

VD

Viacheslav Dubrovsky... in jenkins_ru
Dmitry Burmistrov
Example 2: Throttling of parallel steps
спасибо! не знал что этот плагин умеет так
источник

VL

V L in jenkins_ru
Понятно, спасибо.
Я бы еще использовал логику чтобы изменения по пакетам находил и запускал то что поменялось
источник

VD

Viacheslav Dubrovsky... in jenkins_ru
такое тоже есть
источник

VD

Viacheslav Dubrovsky... in jenkins_ru
если дока поменялась, то все остальное скипается и только дока проверяется
источник

VD

Viacheslav Dubrovsky... in jenkins_ru
но там сложно. Обычно определить что нужно или не нужно проверять нельзя, т.к. есть зависимости между приложениями
источник

VD

Viacheslav Dubrovsky... in jenkins_ru
по расширениям удобно проверять. Если это Пр то получаете диф из гита измененных файлов и дальше по меске проверяете.
источник

VL

V L in jenkins_ru
Да, у меня на каждый пакет в репозитории своя джоба (иногда даже несколько).
Конфиги с параметрами джоб лежат внутри каждого пакета.
Не jenkinsfile. Это json файлы.
Сами джобы созданы заранее через job dsl и привязаны к конкретному конфигу. В итоге около 60 джобов. Есть оркстратор который по изменениям в pr ищет что запустить.
Такая схема большая получается, интересовало как у других
источник