У меня есть следующие настройки:
(раздетый) Jenkinsfile:
@Library('my-custom-library') _
pipeline {
agent any
stages {
stage('Example') {
steps {
printHello name: 'Jenkins'
}
}
}
}
мой обычай библиотека / ресурсы / ком / орг / скрипты / print-hello.sh:
#!/bin/bash
echo "Hello, $1"
мой обычай библиотека / вары / printHello.groovy:
def call(Map parameters = [:]) {
def printHelloScript = libraryResource 'com/org/scripts/print-hello.sh'
def name = parameters.name
//the following line gives me headaches
sh(printHelloScript(name))
}
Я ожидаю Hello, Jenkins
, но выдает следующее исключение:
groovy.lang.MissingMethodException: Нет подписи метода:
java.lang.String.call () применим для типов аргументов:
(java.lang.String) значения: [Дженкинс]
Возможные решения: wait (), any (), wait (long),
split (java.lang.String), take (int), каждый (groovy.lang.Closure)
Итак, возможно ли сделать что-то, как описано выше, без смешивания Groovy и Bash-кода?