From 5f8f443ac49cbe2b14702629da66b7fe5d7b5678 Mon Sep 17 00:00:00 2001 From: gwang-msft <62914304+gwang-msft@users.noreply.github.com> Date: Mon, 13 Jul 2020 14:18:34 -0700 Subject: [PATCH] Android CI build, test copy, emulator boot improvement (#4481) * Enable onnxruntime_test_all for NNAPI EP * switch to use ninja for ANdroid CI * make android elumator boot faster in android ci * simplify adb push * more style change * more tweaking on android ci * build.py style update --- tools/ci_build/build.py | 21 ++++++------------- .../github/android/start_android_emulator.sh | 3 +-- ...ndroid-x86_64-crosscompile-ci-pipeline.yml | 6 +++--- 3 files changed, 10 insertions(+), 20 deletions(-) diff --git a/tools/ci_build/build.py b/tools/ci_build/build.py index 6b0519d392..30b2ee8642 100755 --- a/tools/ci_build/build.py +++ b/tools/ci_build/build.py @@ -1090,12 +1090,8 @@ def setup_dml_build(args, cmake_path, build_dir, configs): run_subprocess(cmd_args) -def adb_push(source_dir, src, dest, **kwargs): - return run_subprocess( - [os.path.join( - source_dir, 'tools', 'ci_build', - 'github', 'android', 'adb-push.sh'), - src, dest], **kwargs) +def adb_push(src, dest, **kwargs): + return run_subprocess(['adb', 'push', src, dest], **kwargs) def adb_shell(*args, **kwargs): @@ -1152,17 +1148,12 @@ def run_onnxruntime_tests(args, source_dir, ctest_path, build_dir, configs): run_subprocess(os.path.join( source_dir, 'tools', 'ci_build', 'github', 'android', 'start_android_emulator.sh')) - adb_push(source_dir, 'testdata', '/data/local/tmp/', cwd=cwd) + adb_push('testdata', '/data/local/tmp/', cwd=cwd) adb_push( - source_dir, - os.path.join(source_dir, 'cmake', 'external', 'onnx', 'onnx', - 'backend', 'test'), + os.path.join(source_dir, 'cmake', 'external', 'onnx', 'onnx', 'backend', 'test'), '/data/local/tmp/', cwd=cwd) - adb_push( - source_dir, 'onnxruntime_test_all', '/data/local/tmp/', - cwd=cwd) - adb_push( - source_dir, 'onnx_test_runner', '/data/local/tmp/', cwd=cwd) + adb_push('onnxruntime_test_all', '/data/local/tmp/', cwd=cwd) + adb_push('onnx_test_runner', '/data/local/tmp/', cwd=cwd) adb_shell( 'cd /data/local/tmp && /data/local/tmp/onnxruntime_test_all') if args.use_dnnlibrary or args.use_nnapi: diff --git a/tools/ci_build/github/android/start_android_emulator.sh b/tools/ci_build/github/android/start_android_emulator.sh index c24ca7b0e0..4158b81afd 100755 --- a/tools/ci_build/github/android/start_android_emulator.sh +++ b/tools/ci_build/github/android/start_android_emulator.sh @@ -10,7 +10,7 @@ echo "no" | $ANDROID_HOME/tools/bin/avdmanager create avd -n android_emulator -k echo "Starting emulator" # Start emulator in background -nohup $ANDROID_HOME/emulator/emulator -avd android_emulator -partition-size 2048 -no-snapshot -no-audio & +nohup $ANDROID_HOME/emulator/emulator -avd android_emulator -partition-size 2048 -memory 3072 -timezone America/Los_Angeles -no-snapshot -no-audio -no-boot-anim -no-window & $ANDROID_HOME/platform-tools/adb start-server @@ -18,4 +18,3 @@ echo "Waiting for device to come online" adb wait-for-device shell 'while [[ -z $(getprop sys.boot_completed) ]]; do sleep 1; done; input keyevent 82' echo "Emulator is online" - diff --git a/tools/ci_build/github/azure-pipelines/android-x86_64-crosscompile-ci-pipeline.yml b/tools/ci_build/github/azure-pipelines/android-x86_64-crosscompile-ci-pipeline.yml index 16468909ff..7295d954e4 100644 --- a/tools/ci_build/github/azure-pipelines/android-x86_64-crosscompile-ci-pipeline.yml +++ b/tools/ci_build/github/azure-pipelines/android-x86_64-crosscompile-ci-pipeline.yml @@ -3,7 +3,7 @@ jobs: pool: vmImage: 'macOS-10.15' steps: - - script: brew install coreutils - displayName: Install coreutils - - script: tools/ci_build/build.py --android --build_dir build --android_sdk_path $ANDROID_HOME --android_ndk_path $ANDROID_HOME/ndk-bundle --android_abi=x86_64 --android_api=29 --skip_submodule_sync --parallel --use_nnapi + - script: brew install coreutils ninja + displayName: Install coreutils and ninja + - script: tools/ci_build/build.py --android --build_dir build --android_sdk_path $ANDROID_HOME --android_ndk_path $ANDROID_HOME/ndk-bundle --android_abi=x86_64 --android_api=29 --skip_submodule_sync --parallel --use_nnapi --cmake_generator=Ninja displayName: Build and Test on Android Emulator