Size: a a a

2020 August 19

VS

Vitaly Savosin in jenkins_ru
Elenhil
jenkins.url/script
Благодарю. Посмотрю
источник

E

Elenhil in jenkins_ru
The script must return a java.util.List, an Array or a java.util.Map, as in the example below:

return ['Option 1', 'Option 2', 'Option 3']
источник

E

Elenhil in jenkins_ru
короче у тебя видимо результат неверный судя по ошибке
источник

E

Elenhil in jenkins_ru
выведи в скрипте результат и посмотри
источник

Г

Григорий in jenkins_ru
Vitaly Savosin
Григорий, что ты имеешь ввиду?
если раньше работающий скрипт возвращал список, но нужно его в обратном порядке, то не return result а return result.reverse()
если result это list
источник

VS

Vitaly Savosin in jenkins_ru
Григорий
если раньше работающий скрипт возвращал список, но нужно его в обратном порядке, то не return result а return result.reverse()
если result это list
Работает! )))
Григорий, благодарю!
источник

DS

Dmitry Sergeev in jenkins_ru
Vitaly Savosin
Ан нет.
Нашёл ошибку в логах jenkins
Aug 19, 2020 3:47:52 AM WARNING org.kohsuke.stapler.HttpResponseRenderer$Default handleJavaScriptProxyMethodCall
failed to serialize [[v0.1, v0.2, v0.3, v0.3.2], [v0.1, v0.2, v0.3, v0.3.2]] for /$stapler/bound/dc85fb3f-3ddd-4e44-b4a3-9f4d62bf4a06/getChoicesForUI given [org.kohsuke.stapler.bind.BoundObjectTable@56227a35, org.kohsuke.stapler.bind.BoundObjectTable$Table@554cad00, org.biouno.unochoice.CascadeChoiceParameter@46c71643]
net.sf.json.JSONException: There is a cycle in the hierarchy!
 at net.sf.json.util.CycleDetectionStrategy$StrictCycleDetectionStrategy.handleRepeatedReferenceAsObject(CycleDetectionStrategy.java:97)
 at net.sf.json.JSONObject._fromBean(JSONObject.java:600)
 at net.sf.json.JSONObject.fromObject(JSONObject.java:169)
...


но не вкурил что имеется ввиду
у тебя два массива внутри массива, разверни его каким нибудь flatten(не помню как в groovy) и оставь только уникальные значения
источник

VS

Vitaly Savosin in jenkins_ru
Dmitry Sergeev
у тебя два массива внутри массива, разверни его каким нибудь flatten(не помню как в groovy) и оставь только уникальные значения
Массив один.
Второй массив появляется после добавления параметра sort.
источник

DS

Dmitry Sergeev in jenkins_ru
Vitaly Savosin
Массив один.
Второй массив появляется после добавления параметра sort.
в твоем коде sort() не нашел, ну ок. Но видимо он что-то делает не так, или данные ему попадают неверные
источник

VS

Vitaly Savosin in jenkins_ru
Dmitry Sergeev
в твоем коде sort() не нашел, ну ок. Но видимо он что-то делает не так, или данные ему попадают неверные
речь идёт о добавлении —sort='-v:refname' для git ls-remote
Как только я его добавляю и получается та ошибка, которую я нашёл в логах jenkins и где содержится упоминание про два массива.
источник

DS

Dmitry Sergeev in jenkins_ru
Vitaly Savosin
речь идёт о добавлении —sort='-v:refname' для git ls-remote
Как только я его добавляю и получается та ошибка, которую я нашёл в логах jenkins и где содержится упоминание про два массива.
а почему нельзя просто сделать так:
источник

DS

Dmitry Sergeev in jenkins_ru
Если я правильно понял, то гит отдает просто список тегов с переносом строк, сплитануть по "\n" и получить готовый список
источник

VS

Vitaly Savosin in jenkins_ru
Не совсем так
git отдаёт вот что:
857c78cfc129ad2cfa42ea5ef7dbfec4d060c392  refs/tags/v0.1
48ffa9f6b82cb7939ec8e2175931b46adba769a5  refs/tags/v0.2
884605587ba85fd16f98deb6b4da8c1bc47bd8a2  refs/tags/v0.3
01b89f77871177c7303fc8c31bad6c1d75dce22b  refs/tags/v0.3.2
источник

M

MAdMAx in jenkins_ru
def tags = (["git", "ls-remote", "-t", "git@gitlab.com:group/projectname.git"].execute().text.tokenize()
).findAll {
   it.indexOf("refs/tags/v") >= 0
}.findAll {
   it.indexOf("^{}") < 0
}
return tags.collect {
   it.replaceAll("refs/tags/v", "")
}.sort().reverse()

а если вот так?)
источник

VS

Vitaly Savosin in jenkins_ru
MAdMAx
def tags = (["git", "ls-remote", "-t", "git@gitlab.com:group/projectname.git"].execute().text.tokenize()
).findAll {
   it.indexOf("refs/tags/v") >= 0
}.findAll {
   it.indexOf("^{}") < 0
}
return tags.collect {
   it.replaceAll("refs/tags/v", "")
}.sort().reverse()

а если вот так?)
Можно попробовать и так, но у меня уже работает так как надо благодаря функции
return result.reverse()
источник

DS

Dmitry Sergeev in jenkins_ru
Vitaly Savosin
Не совсем так
git отдаёт вот что:
857c78cfc129ad2cfa42ea5ef7dbfec4d060c392  refs/tags/v0.1
48ffa9f6b82cb7939ec8e2175931b46adba769a5  refs/tags/v0.2
884605587ba85fd16f98deb6b4da8c1bc47bd8a2  refs/tags/v0.3
01b89f77871177c7303fc8c31bad6c1d75dce22b  refs/tags/v0.3.2
Ну вроде все верно, если только у тебя не косяк с text.readLines
источник

VS

Vitaly Savosin in jenkins_ru
источник

DS

Dmitry Sergeev in jenkins_ru
ну reverse() всего лишь переворачивает массив. Мне интересно, почему у тебя в той ошибке массивы в массиве получились
источник

DS

Dmitry Sergeev in jenkins_ru
failed to serialize [[v0.1, v0.2, v0.3, v0.3.2], [v0.1, v0.2, v0.3, v0.3.2]]
источник

VS

Vitaly Savosin in jenkins_ru
Вот этого не знаю.
Есть предположение, что когда я добавляю к git ls-remote параметр —sort
То git сначала выводит в обычном виде, а потом уже пытается пересортировать данные.
И тогда скрипт groovy получает два массива.
Но это только предположение.
Без sort выводится только один массив
источник