Как вызвать общую библиотеку Jenkins 2 с параметрами и замыканием из конвейера Jenkinsfile?
Я хотел бы вызвать следующую общую библиотеку из конвейера:
[ссылка] https://github.com/docker/jenkins-pipeline-scripts/blob/master/vars/wrappedNode.groovy
Я не знаю, как вызвать и заполнить карту Vars и закрытие тела из конвейера Jenkins 2.
Моя общая библиотека называется "vars/my_shared_library.groovy", и их содержимое
def call(Map vars, Closure body=null) {
vars = vars ?: [:]
def myParameter = vars.get("myParam1",null)
if (body) { body() }
stuff...
}
Содержание Jenkinsfile:
@Library 'my_shared_library'
pipeline {
agent none
stages {
stage ('info') {
node {
my_shared_library {
myParam1 = "myValue1"
}
}
}
}
}
1 ответ
Чтобы вызвать пользовательский шаг из конвейера, вызовите его так:
node {
my_shared_library(myParam1: "Jose"){
echo "hello"
}
}
Чтобы сделать что-то в теле с выданной картой, вам нужно изменить свой шаг:
def call(Map vars, Closure body=null) {
vars = vars ?: [:]
def myParameter = vars.get("myParam1",null)
if (body) { body(myParameter) }
stuff...
}
И конвейер к этому:
node {
my_shared_library(myParam1: "Jose"){ param ->
echo "hello ${param}"
}
}