Jenkins Pipeline Plugin:执行shell和解析输出

Vis*_*ish 13 jenkins jenkins-workflow jenkins-pipeline

我正在使用Jenkins Pipeline插件来执行iOS Checkout-Build-Test-Deploy管道.

一步涉及检查iDevice是否实际连接(否则其余步骤将不会执行).

我想执行一个shell命令idevice_id -l(来自libimobiledevice),它将打印出所连接设备的设备ID,如果没有连接则会失败.

所以我设想的步骤将是:

  • 执行命令 sh "/usr/local/bin/idevice_id -l"
  • 以某种方式解析输出
  • 如果此命令不返回任何内容,则失败.

我已经阅读了大部分官方文档,但画了一个空白.如何解析sh步骤的输出?如果我以错误的方式接近这一点,欢迎任何其他建议.

Pom*_*m12 36

正如本回答中提到的,从Pipeline:节点和进程版本2.4开始,您可以使用:

def out = sh script: '/usr/local/bin/idevice_id -l', returnStdout: true
Run Code Online (Sandbox Code Playgroud)