是否可以将jenkins管道编译到jar中以供共享库使用?
这里是我的问题,我想将jenkins管道编译到jar中,以供共享库导入和使用,这样我就可以保护我的jenkins管道源代码 正如我们所知,共享库可以使用第三方库,我编写自己的第三方库并编译到jar中,然后让共享库导入并使用它,但我不知道如何在自己的第三方库中使用jenkins管道步骤 以下是我所做的:是否可以将jenkins管道编译到jar中以供共享库使用?,jenkins,groovy,jenkins-pipeline,Jenkins,Groovy,Jenkins Pipeline,这里是我的问题,我想将jenkins管道编译到jar中,以供共享库导入和使用,这样我就可以保护我的jenkins管道源代码 正如我们所知,共享库可以使用第三方库,我编写自己的第三方库并编译到jar中,然后让共享库导入并使用它,但我不知道如何在自己的第三方库中使用jenkins管道步骤 以下是我所做的: 我用groovy语言创建自己的第三方库,并将其编译成jar,源代码如下: //src/main/groovy/DemoLibrary.groovy //我想让这个库运行jenkins管道步骤 包c
//src/main/groovy/DemoLibrary.groovy
//我想让这个库运行jenkins管道步骤
包com.example
导入org.jenkinsci.plugins.workflow.steps.dustable_task.ShellStep
类库{
//此函数可以在jenkins主节点中运行命令
//runShell(脚本:script,cwd:cwd)
//返回:进程
def runShell(args){
def cmd=args.script
如果(args.cwd&&args.cwd!=“”){
cmd=“cd${args.cwd}&${cmd}”
}
def cmds=['bash','-c',cmd]
def proc=cmds.execute()
waitFor()程序
if(proc.exitValue()!=0){
抛出新异常(“[ERROR]运行shell错误:${proc.err.text}”)
}
返回过程
}
//我希望这个函数调用jenkins“sh”步骤,但我不知道如何在共享库中获取StepContext
//runStepShell(脚本:脚本,上下文:上下文)
//返回:步执行
def runStepShell(args){
def shellStep=new shellStep(args.script)
def stepExecution=shellStep.start(args.context)
重新运行步骤执行
}
}
//vars/demoLibrary.groovy
@Grab('com.example:demo库:0.1.0')
@字段demoLib=new DemoLibrary()
def demoStage(){
docker.image(“alpine:latest”).内部(“--user 1000:1000”){
def script=“主机名”
//运行步骤“sh”可以显示docker容器的主机名
sh脚本:脚本
//但是运行runShell显示jenkins主机的主机名
def proc=demoLib.runShell(脚本:script)
回显“${proc.text}”
//如何让docker stepContext使我的第三方库运行jenkins sh step?
rrunStepShell(脚本:脚本,上下文:上下文)
}
}
我可以在自己的第三方库中调用jenkins steps吗?这让我有好几天都很沮丧。Thx