Z Y*_*Y . 4 jenkins jenkins-pipeline jenkins-shared-libraries
我想在/src目录中创建一个可以访问 docker 和其他插件步骤的类。
所以我有一个看起来像这样的课程;
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
}
}
}
Run Code Online (Sandbox Code Playgroud)
现在在Jenkinsfile我将有
@Library('name@branch') _
def x = new com.JenkinsLibrary.someClassName(env, steps, docker)
x.runCommands('maven:latest', ['mvn clean', 'mvn test'])
Run Code Online (Sandbox Code Playgroud)
我不喜欢的是我如何为每个对象创建一个构造函数,以便我可以调用属于该对象的方法。有没有更好的对象可以用于我的构造函数,而不必使用 env、steps、docker 等?
此外,steps 对象下有哪些管道步骤可用?环境一样吗?
尝试沿周围发送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
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
并且您通过this在管道脚本中使用来提供脚本:
@Library('name@branch') _
def x = new com.JenkinsLibrary.someClassName(this)
x.runCommands('maven:latest', ['mvn clean', 'mvn test'])
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1146 次 |
| 最近记录: |