我们使用Pipeline Shared Libraries插件来分解我们不同的Jenkins 管道共有的代码.
从其文档中,它resources
为非Groovy文件提供了顶级文件夹.由于我们依赖于不同的bash函数,我们希望将它们托管在一个单独的.sh
文件中(因此它们也可以被除Jenkins之外的其他进程使用).相同的文档告诉我们使用libraryResource
步骤加载这些资源文件.我们可以在Groovy脚本中成功调用此方法,并将其资源文件名称作为argument(function.sh
).但是从这里开始,我们无法找到一种方法来调用同一个Groovy脚本中foofoo
定义的函数function.sh
.
sh "foofoo" #error: foofoo is not defined
Run Code Online (Sandbox Code Playgroud)
我们也试图像这样首先采购它:
sh "source function.sh && foofoo"
Run Code Online (Sandbox Code Playgroud)
但它在source
步骤失败,说明function.sh
找不到.
调用中定义的bash函数的正确过程是什么? function.sh