访问 jenkins 共享库中的插件 类
Accessing plugins in jenkins shared library classes
我想在 /src
目录中创建一个 class,它可以访问 docker 和其他插件步骤。
所以我有一个 class 看起来像这样;
class someClassName implements Serializable {
def env
def steps
def docker
someclassName(env, steps, docker){
this.step = step
this.docker = docker
this.env = env
}
def runCommands(String img, List commands){
docker.image(img).inside {
commands.each {
steps.sh it
}
}
}
现在Jenkinsfile
我会有
@Library('name@branch') _
def x = new com.JenkinsLibrary.someClassName(env, steps, docker)
x.runCommands('maven:latest', ['mvn clean', 'mvn test'])
我不喜欢的是每个对象都有一个构造函数,这样我就可以调用属于该对象的方法。有没有更好的对象可以用于我的构造函数,而不必使用 env、steps、docker 等?
另外,步骤对象下有哪些流水线步骤? env 也一样吗?
尝试沿着周围发送 CPSScript
:
class someClassName implements Serializable {
def script
someclassName(script){
this.script = script
}
def runCommands(String img, List commands){
script.docker.image(img).inside {
commands.each {
script.sh it
}
}
}
}
并且您通过在管道脚本中使用 this
来提供脚本:
@Library('name@branch') _
def x = new com.JenkinsLibrary.someClassName(this)
x.runCommands('maven:latest', ['mvn clean', 'mvn test'])
我想在 /src
目录中创建一个 class,它可以访问 docker 和其他插件步骤。
所以我有一个 class 看起来像这样;
class someClassName implements Serializable {
def env
def steps
def docker
someclassName(env, steps, docker){
this.step = step
this.docker = docker
this.env = env
}
def runCommands(String img, List commands){
docker.image(img).inside {
commands.each {
steps.sh it
}
}
}
现在Jenkinsfile
我会有
@Library('name@branch') _
def x = new com.JenkinsLibrary.someClassName(env, steps, docker)
x.runCommands('maven:latest', ['mvn clean', 'mvn test'])
我不喜欢的是每个对象都有一个构造函数,这样我就可以调用属于该对象的方法。有没有更好的对象可以用于我的构造函数,而不必使用 env、steps、docker 等?
另外,步骤对象下有哪些流水线步骤? env 也一样吗?
尝试沿着周围发送 CPSScript
:
class someClassName implements Serializable {
def script
someclassName(script){
this.script = script
}
def runCommands(String img, List commands){
script.docker.image(img).inside {
commands.each {
script.sh it
}
}
}
}
并且您通过在管道脚本中使用 this
来提供脚本:
@Library('name@branch') _
def x = new com.JenkinsLibrary.someClassName(this)
x.runCommands('maven:latest', ['mvn clean', 'mvn test'])