一尘不染

Jenkins Pipeline插件:执行外壳并解析输出

jenkins

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

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

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

因此,我预想的步骤将是:

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

我已经阅读了大多数官方文档,但留了空白。如何解析sh步骤的输出?如果我以错误的方式处理此问题,欢迎提出其他建议。


阅读 321

收藏
2020-07-25

共1个答案

一尘不染

正如mentionned 这个答案,从管道版本2.4 :节点和进程开始,可以使用:

def out = sh script: 'java -jar scalr-api.jar testing654 n1-standard-8', returnStdout: true

作为2.4版本的
管道:节点和进程,你可以使用:

def out = sh script: '/usr/local/bin/idevice_id -l', returnStdout: true
2020-07-25