web-dev-qa-db-ja.com

Jenkins Pipeline Plugin:シェルを実行して出力を解析する

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

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

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

したがって、私がそれらを想像する手順は次のとおりです。

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

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

13
Vish

この回答 で述べたように、のバージョン2.4の時点で パイプライン:ノードとプロセスつかいます:

def out = sh script: '/usr/local/bin/idevice_id -l', returnStdout: true
36
Pom12

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

出力ファイルが空の場合、パイプラインスクリプトコマンドerror "no device connected"

githubの例

3
Flo