Git实验室管道Android项目
我在git实验室创建了一个android项目。我正在尝试使用管道 生成失败,返回消息Git实验室管道Android项目,android,continuous-integration,gitlab,Android,Continuous Integration,Gitlab,我在git实验室创建了一个android项目。我正在尝试使用管道 生成失败,返回消息 在构建项目之前,您需要接受许可协议,并使用Android Studio SDK管理器完成缺失组件的安装。 我如何自动接受此许可证? 添加--没有ui--全部是不够的(我已经尝试过添加它们!) 我尝试了[此处]介绍的所有解决方案(您需要接受许可协议并完成),但没有成功 有人真的设法让git实验室管道为android工作了吗 下面是我的.gitlab ci.yml文件 image: openjdk:8-jdk v
在构建项目之前,您需要接受许可协议,并使用Android Studio SDK管理器完成缺失组件的安装。
我如何自动接受此许可证?
添加--没有ui--全部是不够的(我已经尝试过添加它们!)
我尝试了[此处]介绍的所有解决方案(您需要接受许可协议并完成),但没有成功
有人真的设法让git实验室管道为android工作了吗
下面是我的.gitlab ci.yml
文件
image: openjdk:8-jdk
variables:
ANDROID_COMPILE_SDK: "24"
ANDROID_BUILD_TOOLS: "25.0.3"
ANDROID_SDK_TOOLS: "25.0.3"
before_script:
- export ANDROID_HOME=$PWD/
- export PATH=$PATH:$PWD/
- apt-get --quiet update --yes
- apt-get --quiet install --yes wget tar unzip lib32stdc++6 lib32z1
- wget --quiet --output-document=android-sdk.zip https://dl.google.com/android/repository/tools_r${ANDROID_SDK_TOOLS}-linux.zip
- unzip android-sdk.zip
- echo y | tools/android --silent update sdk --no-ui --all --filter android-${ANDROID_COMPILE_SDK}
- echo y | tools/android --silent update sdk --no-ui --all --filter platform-tools
- echo y | tools/android --silent update sdk --no-ui --all --filter build-tools-${ANDROID_BUILD_TOOLS}
- echo y | tools/android --silent update sdk --no-ui --all --filter extra-android-m2repository
- echo y | tools/android --silent update sdk --no-ui --all --filter extra-google-google_play_services
- echo y | tools/android --silent update sdk --no-ui --all --filter extra-google-m2repository
- chmod +x ./gradlew
stages:
- build
build:
stage: build
script:
- ./gradlew assembleDebug --stacktrace
artifacts:
paths:
- app/build/outputs/
sdkmanager
cli可用于更新SDK/接受许可证。
接受您可以运行的所有许可证
echo y | tools/bin/sdkmanager--许可证
可以使用sdkmanager
cli更新SDK/接受许可证。
接受您可以运行的所有许可证
echo y | tools/bin/sdkmanager——许可证
我最终用sdkmanager
解决了这个问题,但我不得不下载sdk
zip
,而不是像我原来问题中的代码那样下载工具
zip
这是我在gitlab问题跟踪器上复制的最后一段代码
image: openjdk:8-jdk
variables:
ANDROID_COMPILE_SDK: "24"
ANDROID_BUILD_TOOLS: "25.0.3"
# ANDROID_SDK_TOOLS: "25.0.3"
ANDROID_SDK_TOOLS_REV: "3859397" # "26.0.1"
before_script:
- mkdir $HOME/.android # For sdkmanager configs
- echo 'count=0' > $HOME/.android/repositories.cfg # Avoid warning
- wget --quiet --output-document=android-sdk.zip https://dl.google.com/android/repository/sdk-tools-linux-${ANDROID_SDK_TOOLS_REV}.zip
- mkdir $PWD/android-sdk-linux
- unzip -qq android-sdk.zip -d $PWD/android-sdk-linux
- export ANDROID_HOME=$PWD/android-sdk-linux
- export ANDROID_NDK_HOME=$ANDROID_HOME/ndk-bundle # Remove if you don't need NDK
- export PATH=$PATH:$ANDROID_HOME/platform-tools/:$ANDROID_NDK_HOME
- echo y | $ANDROID_HOME/tools/bin/sdkmanager --update
- echo y | $ANDROID_HOME/tools/bin/sdkmanager 'tools'
- echo y | $ANDROID_HOME/tools/bin/sdkmanager 'platform-tools'
- echo y | $ANDROID_HOME/tools/bin/sdkmanager 'build-tools;'$ANDROID_BUILD_TOOLS
- echo y | $ANDROID_HOME/tools/bin/sdkmanager 'platforms;android-'$ANDROID_COMPILE_SDK
- echo y | $ANDROID_HOME/tools/bin/sdkmanager 'extras;android;m2repository'
- echo y | $ANDROID_HOME/tools/bin/sdkmanager 'extras;google;google_play_services'
- echo y | $ANDROID_HOME/tools/bin/sdkmanager 'extras;google;m2repository'
- chmod +x ./gradlew
我最终使用sdkmanager
解决了这个问题,但我不得不下载sdk
zip
,而不是像我最初问题中的代码那样下载工具
这是我在gitlab问题跟踪器上复制的最后一段代码
image: openjdk:8-jdk
variables:
ANDROID_COMPILE_SDK: "24"
ANDROID_BUILD_TOOLS: "25.0.3"
# ANDROID_SDK_TOOLS: "25.0.3"
ANDROID_SDK_TOOLS_REV: "3859397" # "26.0.1"
before_script:
- mkdir $HOME/.android # For sdkmanager configs
- echo 'count=0' > $HOME/.android/repositories.cfg # Avoid warning
- wget --quiet --output-document=android-sdk.zip https://dl.google.com/android/repository/sdk-tools-linux-${ANDROID_SDK_TOOLS_REV}.zip
- mkdir $PWD/android-sdk-linux
- unzip -qq android-sdk.zip -d $PWD/android-sdk-linux
- export ANDROID_HOME=$PWD/android-sdk-linux
- export ANDROID_NDK_HOME=$ANDROID_HOME/ndk-bundle # Remove if you don't need NDK
- export PATH=$PATH:$ANDROID_HOME/platform-tools/:$ANDROID_NDK_HOME
- echo y | $ANDROID_HOME/tools/bin/sdkmanager --update
- echo y | $ANDROID_HOME/tools/bin/sdkmanager 'tools'
- echo y | $ANDROID_HOME/tools/bin/sdkmanager 'platform-tools'
- echo y | $ANDROID_HOME/tools/bin/sdkmanager 'build-tools;'$ANDROID_BUILD_TOOLS
- echo y | $ANDROID_HOME/tools/bin/sdkmanager 'platforms;android-'$ANDROID_COMPILE_SDK
- echo y | $ANDROID_HOME/tools/bin/sdkmanager 'extras;android;m2repository'
- echo y | $ANDROID_HOME/tools/bin/sdkmanager 'extras;google;google_play_services'
- echo y | $ANDROID_HOME/tools/bin/sdkmanager 'extras;google;m2repository'
- chmod +x ./gradlew
最后我用
速度更快,产生的问题更少:
before_script:
- export GRADLE_USER_HOME=`pwd`/.gradle
- mkdir -p $GRADLE_USER_HOME
- chmod +x ./gradlew
cache:
paths:
- .gradle/wrapper
- .gradle/caches
build:
stage: build
script:
- ./gradlew assemble
test:
stage: test
script:
- ./gradlew check
最后我用
速度更快,产生的问题更少:
before_script:
- export GRADLE_USER_HOME=`pwd`/.gradle
- mkdir -p $GRADLE_USER_HOME
- chmod +x ./gradlew
cache:
paths:
- .gradle/wrapper
- .gradle/caches
build:
stage: build
script:
- ./gradlew assemble
test:
stage: test
script:
- ./gradlew check
我已经为Android创建了一个CI图像,可以在上找到
它基于中所描述的内容,但图像中已经有了所有Android工具,因此您不必在每次CI运行时再次安装它们。与说明相比,该图像在每条管道上为您节省约30秒。我为Android创建了一个CI图像,可在上找到
它基于中所描述的内容,但图像中已经有了所有Android工具,因此您不必在每次CI运行时再次安装它们。与说明相比,该映像在每个管道中为您节省约30秒。sdkmanager
命令未包含在工具压缩包中,您必须下载整个sdk。sdkmanager
命令未包含在工具压缩包中,您必须下载整个sdk。到目前为止,Gitlab已经有了适用于Android的CI模板,这篇文章对此进行了详细描述:尽管如此,它仍然需要在每次运行时动态下载和安装SDK工具。到目前为止,Gitlab有一个针对Android的CI模板,这篇文章对此进行了详细描述:它仍然需要在每次运行时动态下载和安装SDK工具,虽然.Fails for me with未能安装以下Android SDK软件包,因为一些许可证尚未被接受。
并且它似乎缺少sdkmanager
,因此我无法接受它们。Fails for me with未能安装以下Android SDK软件包,因为一些许可证尚未被接受。
并且它似乎缺少sdkmanager
所以我不能接受它们。