运行sh命令时Jenkinsfile用户输入



我试着写一个Jenkinsfile来安装android模拟器并运行一些测试。

但是在运行CCD_ 1时,系统要求我输入"0";否";。

如果我在windows上的本地android工作室上运行这个脚本,一切都可以:图像1

然后我试着为詹金斯写剧本。

ENV:

OS - Linux
Jenkinsfile - use Groovy
Docker

这是我的詹金斯档案:

#!/usr/bin/env groovy
node('android') {
ansiColor('xterm') {
checkout scm
stage('Build and upload') {
docker.image('androidsdk/android-30:latest').inside('-u root')
{

sh 'sdkmanager --list'
sh 'avdmanager create avd -n Google_apis_30 -k "system-images;android-30;google_apis;x86_64"'
echo 'no'
sh 'emulator -list-avds'
sh 'start /min emulator -avd Google_apis_30'
sh './gradlew clean connectedCheck --no-daemon --stacktrace'
}
archiveArtifacts 'app/build/outputs/apk/debug/*.apk'
}

此外,我还尝试了echo命令的几种变体:

echo no | android create avd -n Google_apis_30

sh 'echo no | avdmanager create avd -n Google_apis_30 -k "system-images;android-30;google_apis;x86_64"'

sh 'echo "no"'

echo 'no'

但詹金斯仍然没有通过剧本:Jenkins_log

怎么了?

这很有趣。

我只是忘记了用echo命令替换创建模拟器命令。工作答案:sh 'echo no | avdmanager create avd -n Google_apis_30 -k "system-images;android-30;google_apis;x86_64"'

不带";回声;将被删除。

stage('Build and upload') {
docker.image('androidsdk/android-30:latest').inside('-u root')
{
sh 'sdkmanager --list'
sh 'echo no | avdmanager create avd -n Google_apis_30 -k "system-images;android-30;google_apis;x86_64"'
sh 'emulator -list-avds'
}}

相关内容

  • 没有找到相关文章

最新更新