如何在我自己的jenkins管道插件中执行shell脚本?

时间:2017-05-27 17:33:32

标签: jenkins jenkins-pipeline

我的问题是我想在我的jenkins管道插件中执行一个脚本,而'perf script'命令不起作用。 我的剧本是:

#! /bin/bash
if test $# -lt 2
then
    sudo perf record -F 99 -a -g -- sleep 20
    sudo perf script > info.perf
    echo "voila"
fi  
exit 0

我的Jenkins可以执行sudo,所以这不是问题,在我自己的Linux Shell中,这个脚本完美地工作.. 我该如何解决这个问题?

2 个答案:

答案 0 :(得分:1)

如果重定向在脚本中不起作用,请尝试查看它是否在DSL Jenkins文件中有效。

如果您使用sh step支持returnStdoutJENKINS-26133)来调用该脚本:

res = sh(returnStdout: true, script: '/path/to/your/bash/script').trim()

您可以直接在res处理结果,而不需要文件。

答案 1 :(得分:1)

我解决了这个问题,为perf脚本命令添加了-i选项:

CMakeLists.txt

似乎Jenkins无法在不使用-i选项的情况下读取perf.data