我正在尝试编写一个共享库,它结合了全局变量和共享函数来执行项目构建和部署的自动化任务
项目布局如下:
该项目有两个主要部分:
答案 0 :(得分:2)
我刚刚通过调用jenkins工作中提供的 println 步骤找到了一种方法
基本上我在Groovy类 PhoenixEurekaService 中创建一个包装函数,如下所示:
这些步骤实际上是通过构造函数传递到Groovy类的jenkins作业环境。通过这种方式,我们可以在Groovy类中调用jenkins作业中的任何可用步骤。
在全球groovy脚本中 PhoenixLib.groovy
我不确定是否有其他方法可以做到这一点......
答案 1 :(得分:0)
我不是100%肯定你是否正在寻找,但是通过传递步骤并使用echo
可以在共享库中打印东西。请参阅https://jenkins.io/doc/book/pipeline/shared-libraries/
答案 2 :(得分:0)
无法从共享库访问所有命令/ DSL,例如:println,sh,bat,checkout等。 参考:https://jenkins.io/doc/book/pipeline/shared-libraries/。
您可以通过将步骤传递到共享库来访问步骤。
//your library
package org.foo
class Utilities implements Serializable {
def steps
Utilities(steps) {this.steps = steps}
def mvn(args) {
steps.println "Hello world"
steps.echo "Hello echo"
//steps.sh "${steps.tool 'Maven'}/bin/mvn -o ${args}"
}
}
jenkinsfile
@Library('utils') import org.foo.Utilities
def utils = new Utilities(this)
node {
utils.mvn '!!! so this how println can be worked out or any other step!!'
}