如何在Jenkins管道脚本中使用source命令

Nei*_*eil 14 linux bash shell jenkins jenkins-pipeline

我最近将bash执行命令重写为Jenkins管道.旧代码就像

...
source environment.sh
//Build
//Test
...
Run Code Online (Sandbox Code Playgroud)

现在我使用管道脚本来包装命令,就像这样

sh '''
    ...
    source environment.sh
    //Build
    //Test
    ...
'''
Run Code Online (Sandbox Code Playgroud)

但是,我收到了一个错误,因为.../.jenkins/script.sh: line 9: source: environment.sh: file not found.当我尝试时less environment.sh,它显示正确.所以我怀疑有毛病source commandsh wrap.

在使用管道之前,source environment.sh命令在shell执行中正常工作.所以源代码安装在Jenkins服务器上,似乎管道脚本不知道源代码是什么.

如何在sh包装块中运行source命令?

Ste*_*hen 15

替换source environment.sh

. ./environment.sh
Run Code Online (Sandbox Code Playgroud)

请注意,第一个点后面有一个空格.


che*_*ner 8

source是一个bash/ ksh/ etc扩展,作为更"实质"的同义词提供..

sh,您需要使用.以防底层shell是一个(例如dash)不支持该命令source.

sh '''
    ...
    . environment.sh
    //Build
    //Test
    ...
'''
Run Code Online (Sandbox Code Playgroud)