как вызвать общую библиотеку Jenkins 2 с параметрами и замыканием из конвейера Jenkinsfile? - PullRequest
0 голосов
/ 04 июля 2018

Я хотел бы вызвать следующую общую библиотеку из конвейера:

[ссылка] 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 Ответ

0 голосов
/ 05 июля 2018

Чтобы вызвать пользовательский шаг из конвейера, вызовите его так:

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}"
  }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...