2

我想从管道中调用下一个共享库:

[链接] https://github.com/docker/jenkins-pipeline-scripts/blob/master/vars/wrappedNode.groovy

我不知道如何从 Jenkins 2 管道调用和填充 vars 映射和主体闭合。

我的共享库名称是“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"
            }
         }
    }
  }
}
4

1 回答 1

3

要从管道中调用您的自定义步骤,请像这样调用它:

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}"
  }
}
于 2018-07-05T11:06:06.187 回答