2015-09-25 58 views
3

Gitlab最近將CI集成到新版本中。有沒有更好的方式來整合android測試與gitlab-ci爲了使它與gitlab一起工作?這會考慮到你現在可以在一臺服務器上所做的一切集成Android(或Gradle)與Gitlab-CI

感謝

回答

0

我已經設置了Gitlab CI構建Android項目是巨大的。 Here's a container that can build android。試圖在服務器上運行模擬器的回憶太痛苦了,所以我只是堅持使用Robolectric或類似的東西。你可能不得不調整容器的Android版本的建設。此設置使用gradle安裝,因爲我無法設置適當的緩存。

variables: 
    LIBRARY: "rxfirebaseandroid" 

build: 
    script: 
    - gradle testDebug 
    artifacts: 
    paths: 
     - $LIBRARY/build/outputs/aar/ 
0

建築和單元測試工作得很好。 Here's該教程還包括使用仿真器的功能測試。對我來說,建立模擬器還沒有起作用,但其他兩個則相對沒有問題。

下面我發佈了.gitlab-ci.yml,它對我的​​android應用程序最有效。如果你不需要模擬器,你可能會刪除before_script,當然還有功能測試,而且你會留下一個很短的配置文件。但是,仿真器是否工作似乎取決於您使用的runners,因此您可能需要嘗試一下。

image: openjdk:8-jdk 

variables: 
    ANDROID_COMPILE_SDK: "25" 
    ANDROID_BUILD_TOOLS: "25.0.2" 
    ANDROID_SDK_TOOLS: "25.2.3" 

before_script: 
    - apt-get --quiet update --yes 
    - apt-get --quiet install --yes wget tar unzip lib32stdc++6 lib32z1 libqt5widgets5 
    - wget --quiet --output-document=android-sdk.zip https://dl.google.com/android/repository/tools_r${ANDROID_SDK_TOOLS}-linux.zip 
    - unzip -q 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 
    - export ANDROID_HOME=$PWD/ 
    - export PATH=$PATH:$PWD//platform-tools/ 
    - 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 | tools/android --silent update sdk --no-ui --all --filter sys-img-x86-google_apis-${ANDROID_COMPILE_SDK} 
    - echo no | tools/android create avd -n test -t android-${ANDROID_COMPILE_SDK} --abi google_apis/x86 
    - tools/emulator64-x86 -avd test -no-window -no-audio & 
    - ./android-wait-for-emulator 
    - adb shell input keyevent 82 
    - ./gradlew cAT