我需要在不同位置获取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中构建文件?
答案 0 :(得分:1)
。 (一个时期)
。文件名[参数]
读取并执行命令...
语法是一个文件名,然后是位置参数,它不能接受多个文件。 串联文件不允许在调用之间更改参数,如果允许的话,可以使用命令序列
{ . 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"
'''