【发布时间】:2021-12-07 23:18:48
【问题描述】:
我正在编写一个将在管道中使用的共享库。
class Deployer implements Serializable {
def steps
Deployer(steps) {
this.steps = steps
}
def deploy(env) {
// convert environment from steps to list
def process = "ls -l".execute(envlist, null)
process.consumeProcessOutput(output, error)
process.waitFor()
println output
println error
}
}
在 Jenkinsfile 中,我导入库、调用类并在 script 部分中执行部署函数:
stage('mystep') {
steps {
script {
def deployer = com.mypackage.HelmDeployer("test")
deployer.deploy()
}
}
}
但是,控制台日志上不会打印任何输出或错误。
是否可以在共享库类中执行内容?如果是这样,我是怎么做的,我做错了什么?
【问题讨论】:
-
Jenkins 仅从 vars 文件夹加载关键字,因此您需要在 vars 文件夹中创建一个适配器关键字,您可以在其中启动您的类并返回它 - 您可以在 @987654325 中看到这一点following example中的@关键字。
标签: jenkins jenkins-pipeline jenkins-shared-libraries