67 lines
1.8 KiB
YAML
67 lines
1.8 KiB
YAML
image: reactivecircus/android-emulator-23:latest
|
|
|
|
|
|
variables:
|
|
API_LEVEL: "23"
|
|
ARCH: "x86"
|
|
TARGET: "default"
|
|
|
|
|
|
before_script:
|
|
- export GRADLE_USER_HOME=`pwd`/.gradle
|
|
|
|
cache:
|
|
paths:
|
|
- .gradle/wrapper
|
|
- .gradle/caches
|
|
|
|
# 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
|