13

Jenkins Pipeline プラグインを使用して iOS Checkout-Build-Test-Deploy パイプラインを実行しています。

1 つのステップでは、iDevice が実際に接続されているかどうかを確認します (接続されていない場合、残りのステップは実行されません)。

接続されたデバイスのデバイス ID を出力するシェル コマンドidevice_id -l( libimobiledeviceから)を実行したい、または何も接続されていない場合は失敗します。

したがって、私が想定する手順は次のようになります。

  • コマンド実行sh "/usr/local/bin/idevice_id -l"
  • 何らかの方法で出力を解析する
  • このコマンドが何も返さない場合は失敗します。

私はほとんどの公式ドキュメントを読みましたが、空白を描きました。shステップの出力を解析するにはどうすればよいですか? これに間違った方法でアプローチしている場合は、他の提案を歓迎します。

4

2 に答える 2

37

この回答で述べたように、バージョン 2.4 のPipeline: Nodes and Processesの時点で、次を使用できます。

def out = sh script: '/usr/local/bin/idevice_id -l', returnStdout: true
于 2016-08-23T13:19:25.230 に答える
4

公式の方法は、出力をファイルにリダイレクトしてファイルを読み取ることです

出力ファイルが空の場合、パイプライン スクリプト コマンドでジョブを失敗させることができますerror "no device connected"

github の例

于 2016-03-30T11:00:56.857 に答える