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

回到顶部