У меня следующая установка:
(Вычеркнуто) Jenkinsfile:
@Library('my-custom-library') _
pipeline {
agent any
stages {
stage('Example') {
steps {
printHello name: 'Jenkins'
}
}
}
}
моя-пользовательская-библиотека / ресурсы / com / org / scripts / print-hello.sh:
#!/bin/bash
echo "Hello, $1"
моя-пользовательская-библиотека / vars / 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) значения: [Jenkins]
Возможные решения: wait (), any (), wait (long), split (java.lang.String), take (int), each (groovy.lang.Closure)
Итак, возможно ли сделать что-то подобное, описанному выше, без смешивания кода Groovy и Bash?