我在Jenkins的许多项目中都有一个通用的Shell脚本,将其放入resources文件夹并按如下所示加载它是否正确:
def script = libraryResource 'build/package_indexes/build_push.sh'
虽然这有效:
sh script
但是一旦我开始使build_push.sh脚本接受参数,就不能正常运行了,因为script它不是文件…
build_push.sh
script
第二个问题是将script变量输出到临时文件中是否正确,例如
writeFile script '/tmp/tmp.sh' sh "/tmp/tmp.sh 'cmd_arg'"
bash -c会成功的 只要记住第一个参数是$ 0而不是$ 1
bash -c
例如:
我的剧本-
echo hello $0!
在Jenkinsfile中
def script = libraryResource 'hello.sh' sh "bash -c '$script' world"
结果就是世界!