2

Jenkinsビルドスクリプトには、次のようなコマンドを使用してデバイスからいくつかの単体テストをアンインストールしようとするステップがあります。

adb uninstall com.company.test

ビルドマシンに通常接続している物理デバイスが何らかの理由で存在しないかオフになっている場合、ビルドは次のようにハングします。

waiting for device -

誰かがこれを回避する方法を知っていますか?プラグインの噂を聞いたことがありますか?理想的には、タイムアウト期間の後に警告を吐き出し、それから続行することをお勧めします。次に最も理想的なのは、代わりにエミュレーターを起動することです。

4

2 に答える 2

1

ハッキーな回避策は、「adbdevices」コマンドが「Listofdevicesattached」文字列以外のものを返すかどうかを確認することです。

スクリプトに次を追加してみてください。

DEVICE_PRESENT=`adb devices | tail -n 1`
if [ -n "$DEVICE_PRESENT" ]
then
    echo "A device is present..."
    # Run your uninstall and other commands you need the device for here
fi

このハックが機能する唯一の理由は、「adbdevices」が現在「接続されているデバイスのリスト」と空の行(デバイスが見つからない場合)を返すことです。この動作が変更された場合、このアプローチは機能しなくなります。

于 2012-06-21T23:30:32.073 に答える
1

理想的ではありませんが、Build Timeout プラグインは、少なくともビルドが永遠にハングしないようにします: https://wiki.jenkins-ci.org/display/JENKINS/Build-timeout+Plugin

于 2012-06-21T23:18:25.147 に答える