Size: a a a

2021 April 12

YO

Yaroslav Osmysliteln... in jenkins_ru
Не наблюдал. Jjb как конструктор. Тебе надо разбить по кусочками что ты хочешь, скомпоновать, и через имена(возможность темплейта) под нужную группу выдавать нужный подготовленный блок.
источник

A

Anton 🐻 in jenkins_ru
А есть ссылка или пример?
источник

YO

Yaroslav Osmysliteln... in jenkins_ru
Вычитывай доку, там оно есть, не с 1го раза просто бросается в глаза. Впринципе по jjb дока + исходники = достаточно информации.
Вот пример (под рукой был). У себя так делал, НО, не то чтоб оооочень хорошо jjb использую
- project:
   name: some-project
   tratata:
     - a
     - b
     - 'c'
         some_property: 'foo'
   jobs:
     - example-{tratata}


- job-template:
   name: example-{tratata}

   properties:
     - 'my-property-block-{some_property|default}'


- property:
   name: my-property-block-default
   properties:
     - raw:
         xml: '...'

- property:
   name: my-property-block-tratata
   properties:
     - raw:
         xml: '...'
p.s. от себя могу только сказать, посмотри в сторону dsl плагина. jjb хорош до тех пор, пока не появляется много if'ов, вначале нарадоваться не мог, щас этот зоопарк yaml не очень люблю, хотя опять же, еще скил написания влияет.
источник

Z

Zlokot in jenkins_ru
в пайплайне есть вызов sh команды

result = sh(script: "curl URI | jq bla-bla")


которая возвращает в result

[
"string",
1234
]

как то можно это значения сохранить в переменные groovy?
источник

Н

Никита in jenkins_ru
смотри на синтаксис, там есть что то типо returnstdout: true
источник

N

NoTime in jenkins_ru
return = sh(returnStdout: true, script: "foo bar")
источник

Z

Zlokot in jenkins_ru
( блин
не то
ну не указал я в примере returnStdout: true
источник

Z

Zlokot in jenkins_ru
println result выдает
[
"str",
123
]
источник

Z

Zlokot in jenkins_ru
как его распарсить и в переменные загнать?
источник

N

NoTime in jenkins_ru
а, ну ты распарсить хочешь
источник

Z

Zlokot in jenkins_ru
да.. проблема в том, что весь result - это строка в понимании грувей..
источник

Z

Zlokot in jenkins_ru
но скобки [] может помогут как-то в мап или массив.. хз
никто не сталкивался?
источник

DB

Dmitry Burmistrov in jenkins_ru
Если это json, то юзай readJson
источник

Н

Никита in jenkins_ru
b = result.toList()
источник

Н

Никита in jenkins_ru
и все
источник

Z

Zlokot in jenkins_ru
спасибо
проверю оба варианта
источник

Z

Zlokot in jenkins_ru
делаю так:

    build_map = readJSON(text: last_commit_result)

   println "build_map:"
   println build_map

   commit_id = build_map.values.id
   println "commit_id:"
   println commit_id

получаю
16:57:09  commit_id:
16:57:09  [Pipeline] echo
16:57:09  [aaad58dfa3a8a2c3d6951e683c8a53e04abe9cda]

откуда там []?
и в другой переменной -
16:57:09  timestamp:
16:57:09  [Pipeline] echo
16:57:09  [1618235386000]


как мне их конвертнуть в строку и цифру?
источник

DB

Dmitry Burmistrov in jenkins_ru
> откуда там []
> println build_map
вот отсюда
println build_map[0]
источник

Z

Zlokot in jenkins_ru
блин точно. спасибо
источник
2021 April 13

DS

Dmitry Sergeev in jenkins_ru
А можно ли как-то выбрать ноду по ее имени?
Надо выполнить pipeline на всех нодах, которые подходят под лейбл
Пытаюсь сделать так
for (n in nodesByLabel('label-name')) {
 node(n) {
     // some code
 }
}


Но он говорит что ноды с таким лейблом нет. Хотя вроде в доках указано что там можно через имя это делать:
Computer name, label name, or any other label expression like linux && 64bit to restrict where this step builds. May be left blank, in which case any available executor is taken.
источник