The guide for Gitlab Android CI integration contains information on how to integrate CI with Gitlab. But the official guide contains little bit out dated .gitlab-ci.yml file.
The script in yml tries to download a tar file but the latest sdk contains as of zip format. Therefore I had to modify the script slightly to download the right android sdk and set the $ANDROID_SDK_HOME correctly with the above change.
If you have trouble setting up Android CI for Gitlab project please try using the following code in gitlab ci yml file.
If you want to run unit tests for debug only with more details use the following command instead.
./gradlew testDebug --stacktrace
image: openjdk:8-jdk | |
variables: | |
ANDROID_COMPILE_SDK: "25" | |
ANDROID_BUILD_TOOLS: "25.0.2" | |
ANDROID_SDK_TOOLS: "25.2.5" | |
before_script: | |
- 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 | |
- export ANDROID_HOME=$PWD/ | |
- echo y | $ANDROID_HOME/tools/android --silent update sdk --no-ui --all --filter android-${ANDROID_COMPILE_SDK} | |
- echo y | $ANDROID_HOME/tools/android --silent update sdk --no-ui --all --filter platform-tools | |
- echo y | $ANDROID_HOME/tools/android --silent update sdk --no-ui --all --filter build-tools-${ANDROID_BUILD_TOOLS} | |
- echo y | $ANDROID_HOME/tools/android --silent update sdk --no-ui --all --filter extra-android-m2repository | |
- echo y | $ANDROID_HOME/tools/android --silent update sdk --no-ui --all --filter extra-google-google_play_services | |
- echo y | $ANDROID_HOME/tools/android --silent update sdk --no-ui --all --filter extra-google-m2repository | |
- export PATH=$PATH:$ANDROID_HOME | |
- chmod +x ./gradlew | |
stages: | |
- build | |
- test | |
build: | |
stage: build | |
script: | |
- ./gradlew assembleDebug | |
artifacts: | |
paths: | |
- app/build/outputs/ | |
unitTests: | |
stage: test | |
script: | |
- ./gradlew test | |
functionalTests: | |
stage: test | |
script: | |
- wget --quiet --output-document=android-wait-for-emulator https://raw.githubusercontent.com/travis-ci/travis-cookbooks/0f497eb71291b52a703143c5cd63a217c8766dc9/community-cookbooks/android-sdk/files/default/android-wait-for-emulator | |
- chmod +x android-wait-for-emulator | |
- echo y | $ANDROID_HOME/tools/android --silent update sdk --no-ui --all --filter sys-img-x86-google_apis-${ANDROID_COMPILE_SDK} | |
- echo no | $ANDROID_HOME/tools/android create avd -n test -t android-${ANDROID_COMPILE_SDK} --abi google_apis/x86 | |
- $ANDROID_HOME/tools/emulator64-x86 -avd test -no-window -no-audio & | |
- ./android-wait-for-emulator | |
- adb shell input keyevent 82 | |
- ./gradlew cAT |
Leave a Reply