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