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

我最近重写了bash执行命令到Jenkinspipe道。 旧的代码就像

... source environment.sh //Build //Test ... 

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

 sh ''' ... source environment.sh //Build //Test ... ''' 

但是,我得到了一个错误,因为.../.jenkins/script.sh: line 9: source: environment.sh: file not found 。 当我尝试less environment.sh ,它显示正确。 所以我怀疑sh wrap source command什么问题。

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

我怎么能在sh包裹块中运行source命令?

source environment.sh替换source.sh

 . ./environment.sh 

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

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

sh ,你需要使用. 以防底层的外壳是不支持命令source (例如dash )。

 sh ''' ... . environment.sh //Build //Test ... '''