Android adb等待设备不在jenkins作业中工作,但在ssh会话中工作
我有一台运行macOS Catalina OS的Mac微型计算机,这是一台运行声明性管道的Jenkins从机 如果我连接到ssh并使用以下命令运行模拟器:Android adb等待设备不在jenkins作业中工作,但在ssh会话中工作,android,android-emulator,jenkins-pipeline,adb,adb-shell,Android,Android Emulator,Jenkins Pipeline,Adb,Adb Shell,我有一台运行macOS Catalina OS的Mac微型计算机,这是一台运行声明性管道的Jenkins从机 如果我连接到ssh并使用以下命令运行模拟器: emulator -avd Pixel_2_API_28_-_Android_9 -wipe-data -no-snapshot & adb wait-for-device -s emulator-5554 shell 'while [[-z $(getprop sys.boot_completed) ]]; do sleep 1;
emulator -avd Pixel_2_API_28_-_Android_9 -wipe-data -no-snapshot &
adb wait-for-device -s emulator-5554 shell 'while [[-z $(getprop sys.boot_completed) ]]; do sleep 1; done;'
然后等待命令准备就绪:
emulator -avd Pixel_2_API_28_-_Android_9 -wipe-data -no-snapshot &
adb wait-for-device -s emulator-5554 shell 'while [[-z $(getprop sys.boot_completed) ]]; do sleep 1; done;'
一切正常,几秒钟后我得到命令提示符,可以在本地运行appium测试
当我在声明性管道中运行与jenkins jobs相同的命令(以及我在这里和其他地方发现的许多类似命令,您可以在下面看到这些命令被注释掉)时,问题就出现了
相同的“adb wait for device”命令将挂起,直到作业达到其120分钟超时限制
我尝试了以下方法,这是我的“等待启动模拟器”管道阶段(“DEVICEID”变量是我从另一个作业中获得的参数)
下面是开始模拟器部分:
stage('Run Emulator') {
steps {
sh '''
#!/usr/bin/env bash
# Start adb daemon
adb start-server
# Start android emulator
emulator -avd ''' + AVDEMULATOR + ''' -wipe-data -no-snapshot &
'''
}
}
还有别的方法我还没找到吗
提前谢谢