我想从共享库本身执行一个shell文件。
下面是文件的路径:
libraryFoo/resources/foo.sh
我的PipelineUtils包在库中的路径:libraryFoo/src/f1.org.pipeline/PipelineUtils
class PipelineUtils implements Serializable {
...
def shell() {
pipeline.sh(
script: resources/foo.sh,
returnStdout: true
)
}
}
并且它在管道中实施:
@Library('libraryFoo') _
import f1.org.pipeline.PipelineUtils
...
stage('Tag SCM') {
def utils = new PipelineUtils()
utils.shell()
}
1条答案
按热度按时间h22fl7wq1#
为了从共享库的resources文件夹中读取文件,您需要使用专门为此创建的指定步骤libraryResource:
libraryResource
:从共享库加载资源文件从共享库中读取资源并将其内容作为普通字符串返回。
*资源
共享库的**/resources**文件夹中资源的相对(/分隔)路径。
*encoding(可选)阅读资源时使用的编码。如果留空,将使用平台默认编码。通过指定“Base64”作为编码,二进制文件可以读入Base64编码的字符串。
因此,在您的情况下,您可以使用它来加载脚本并使用
sh
步骤运行它,假设pipeline
是您的对象,它包含脚本上下文,它看起来像:或者,如果将来用途:需要,您也可以加载脚本并将其重写为本地文件: