如何在詹金斯的不同位置获取多个脚本

时间:2019-02-06 13:06:58

标签: bash shell jenkins docker-compose jenkins-pipeline

我需要在不同位置获取2个脚本,然后运行docker-compose,但我遇到了必须首先获取脚本的错误。

我发现了这个How to use source command within Jenkins pipeline script问题,并写了如下的詹金斯公报:

. ../env/scriptA.sh arg-1 ../env/scriptB.sh ../compose/build.yml arg-2

但仍然面临该错误。那么我如何获取所有这些脚本并在jenkins中构建文件?

2 个答案:

答案 0 :(得分:1)

来自bash manual

  

。 (一个时期)

     

。文件名[参数]

     

读取并执行命令...

语法是一个文件名,然后是位置参数,它不能接受多个文件。 串联文件不允许在调用之间更改参数,如果允许的话,可以使用命令序列

{ . file1 args ; . file2 args;}

请注意,第一个开括号和分号之前的空格很重要。

答案 1 :(得分:0)

正如Nahuel Fouilleul在回答中提到的那样,这只是一行,而脚本和yml文件是其他参数,正如我在对Nahuel Fouilleul的评论中提到的那样,问题是由于“ [[”,我无法获得该脚本在jenkins的shell环境中(即使脚本具有自己的shebang),因此我按如下所示将shebang添加到jenkins的shell块中,现在它可以工作了。

sh '''#!/bin/bash -xe
. ../env/scriptA.sh arg-1 ../env/scriptB.sh ../compose/build.yml arg-2
echo "other commands"
'''