image: reactivecircus/android-emulator-23:latest variables: API_LEVEL: "23" ARCH: "x86" TARGET: "default" # Basic android and gradle stuff # Check linting lintDebug: interruptible: true stage: build script: - ./gradlew checkLicenses - ./gradlew -Pci --console=plain :app:lintDebug -PbuildDir=lint # Make Project assembleDebug: interruptible: true stage: build script: - ./gradlew assembleDebug artifacts: paths: - app/build/outputs/ # Run all tests, if any fails, interrupt the pipeline(fail it) debugTests: interruptible: true stage: test script: - ./gradlew -Pci --console=plain :app:testDebug -x lint emulatorTest: interruptible: true stage: test script: - echo no | avdmanager create avd --force --name "api-${API_LEVEL}" --abi "${TARGET}/${ARCH}" --package "system-images;android-${API_LEVEL};${TARGET};${ARCH}" - $ANDROID_SDK_ROOT/emulator/emulator -avd "api-${API_LEVEL}" -no-window -gpu swiftshader_indirect -no-snapshot -noaudio -no-boot-anim -camera-back none & - chmod +x android-wait-for-emulator.sh - ./gradlew build -x lint - ./android-wait-for-emulator.sh - adb shell settings put global window_animation_scale 0.0 - adb shell settings put global transition_animation_scale 0.0 - adb shell settings put global animator_duration_scale 0.0 - ./gradlew build connectedCheck connectedStagingAndroidTest jacocoTestReport -x lint - cat app/build/reports/jacoco/jacocoTestReport/html/index.html | grep -o 'Total[^%]*%' artifacts: when: always paths: - ./app/build/reports/jacoco/jacocoTestReport/ expire_in: 1 week