如何在jenkins中调用jenkins共享库中的函数

yrdbyhpb  于 2023-08-03  发布在  Jenkins
关注(0)|答案(1)|浏览(119)

我在vars下的jenkins共享库中有一个x.groovy和一个y.groovy文件。我需要使用x.groovy中函数的输出作为y.groovy函数的输入。
x.groovy看起来像这样:

void testM(String msg) {
    int paddingLen = 100
    String bottomLine = '└'.padRight(paddingLen, '─') + '┘\n'
    String topLine = '┌'.padRight(paddingLen, '─') + '┐\n'

    String pM = topLine +
                     "|"+ msg.padRight(200) + "|\n" +
                     bottomLine

    printf(pM)
}

个字符
在jenkinsfile中,我需要将其用作display.testM("print something here")
我该怎么做,请指教

7gyucuyw

7gyucuyw1#

不清楚你的结构如何,但
1.你可以从vars/* 文件夹的任何文件中调用任何函数

vars/x.groovy
def firstFunction() {...}
def sesondFunction() {...}
vars/y.groovy 
def firstFunction() {...}
def sesondFunction() {...}

字符串
将调用x.firstFunction()
或者是

y.firstFunction()


默认情况下,y() or x()将尝试执行文件中的call()函数(如果不存在,您将看到错误)
在您的情况下,最好创建一个文件vars/DisplayMessage.groovy

String formatMessage(String msg) {
  int paddingLen = 100
  String bottomLine = '└'.padRight(paddingLen, '─') + '┘\n'
  String topLine = '┌'.padRight(paddingLen, '─') + '┐\n'

  String pM = topLine +
    "|"+ msg.padRight(200) + "|\n" +
    bottomLine

  return pM
}

def call(String message) {
  String formatedMessage = x.formatMessage(message)

  loadColors()
  echo "${GREEN}[INFO] - ${formatedMessage} ${NC}"
}


并将其作为DisplayMessage("your message")在管道中使用
如果没有,您可以在注解中使用y.display(x.testM("print something here"))

相关问题