А никто не сталкивался со странной фигней. Если в методе из shared lib использовать метод
Jenkins.instance.getItemByFullName
. То далее если использовать вызовы sh в этом методе, то pipeline падает со странной ошибкой.
pipeline простой (scripted синтаксис)
node {
stage('test') {
sh 'echo "sh from pipe"'
test('anotherJobName') // вызов метода из shared lib
}
}
test.groovy из shared lib:
```
def call(jobName) {
def builds = Jenkins.instance.getItemByFullName(
j
obName).getBuilds()
println builds.getClass()
println '### print ###'
sh 'echo "sh from shared lib"'
}
```
В итоге на вызове sh ( echo "
sh from shared lib
") из shared, pipeline падает с очень странной ошибкой
https://pastebin.com/2EduyBbK - видно как отработали
println
builds.getClass()
и
println '### print ###'
. А затем pipeline упал с ужасно непонятным трейсом. При этом я вижу как из pipeline, sh 'echo "sh from pipe"' отработал норм.
Причем странно, если в shared lib методе, sh вызывать до
Jenkins.instance.getItemByFullName
, то все норм отрабатывает и никаких ошибок. То есть в таком варианте ошибок нет
```
def call(jobName) {
sh 'echo "sh from shared lib"'
def builds = Jenkins.instance.getItemByFullName(jobName).getBuilds()
println builds.getClass()
println '### print ###'
}
```
Что вообще происходит непонятно. Мб
Jenkins.instance.getItemByFullName
- странный какой-то метод, и надо его избегать. И есть по лучше способ вытащить билды из указанной джобы?