--- stages: - docker_image_sdk - docker_image_other - build - test # When using dind, it's wise to use the overlayfs driver for # improved performance. variables: DOCKER_DRIVER: overlay .job_template: &build_docker_image image: 0xacab.org:4567/leap/docker/debian:bullseye_amd64 tags: - docker-in-docker - runner02-sea services: - docker:dind before_script: - > export LAST_COMMIT=$(curl -s --header "PRIVATE-TOKEN: ${LEAP_CODE_O_MATIC_PRIVATE_TOKEN}" https://0xacab.org/api/v4/projects/578/pipelines | python -c "import sys, json; print json.load(sys.stdin)[1]['sha']") script: - docker --version - docker info - if ! .gitlab/build.sh ${DOCKER_IMAGE} >> dockerbuild.log 2>&1; then echo "Image build failed. Please check dockerbuild.log."; echo "tail -n 200 dockerbuild.log:"; tail -n 200 dockerbuild.log; echo "disk space:"; df -h; sleep 800; exit 1; fi; allow_failure: false artifacts: expire_in: 3d paths: - dockerbuild.log docker_image:sdk: stage: docker_image_sdk variables: DOCKER_IMAGE: android-sdk <<: *build_docker_image docker_image:ndk: stage: docker_image_other variables: DOCKER_IMAGE: android-ndk <<: *build_docker_image docker_image:emulator: stage: docker_image_other variables: DOCKER_IMAGE: android-emulator allow_failure: true <<: *build_docker_image docker_image:fastlane: stage: docker_image_other variables: DOCKER_IMAGE: android-fastlane # DEFAULT_IMAGE: "registry.0xacab.org/leap/bitmask_android/android-emulator" when: manual <<: *build_docker_image allow_failure: true unit_test: image: "0xacab.org:4567/leap/bitmask_android/android-ndk:latest" stage: test script: - ./scripts/prepareForTests.sh - ./gradlew testCustomProductionFatReleaseUnitTest testNormalProductionFatReleaseUnitTest artifacts: paths: - app/build/reports/tests when: on_failure expire_in: 3 days screenshot: image: "0xacab.org:4567/leap/bitmask_android/android-fastlane:latest" stage: test when: always tags: - birch variables: LC_ALL: "en_US.UTF-8" LANG: "en_US.UTF-8" ANDROID_EMULATOR_USE_SYSTEM_LIBS: 1 DEBIAN_FRONTEN: "noninteractive" # try to re-use the build artifcats from before, lib building is slow dependencies: - build script: - ./scripts/installFastlane.sh - ./scripts/startEmulators.sh - ./scripts/fastlane.sh - ./scripts/fastlane.sh custom artifacts: paths: - src/custom/ - src/normal/ when: always expire_in: 3 days allow_failure: true #ui_test: # image: "0xacab.org:4567/leap/bitmask_android/android-emulator:latest" # stage: test # script: # - emulator -avd testApi27 -no-audio -no-window & # - .gitlab/wait-for-emulator.sh # - adb devices # - adb shell settings put global window_animation_scale 0 & # - adb shell settings put global transition_animation_scale 0 & # - adb shell settings put global animator_duration_scale 0 & # - adb shell input keyevent 82 & # - ./gradlew connectedAndroidTest # - adb -s testApi27 emu kill #expanded_test: # image: "0xacab.org:4567/leap/bitmask_android/android-emulator:latest" # stage: test # script: # - emulator -avd testApi27 -no-audio -no-window & # - .gitlab/wait-for-emulator.sh # - adb devices # - adb shell settings put global window_animation_scale 0 & # - adb shell settings put global transition_animation_scale 0 & # - adb shell settings put global animator_duration_scale 0 & # - adb shell input keyevent 82 & # - ./gradlew connectedAndroidTest # - ./gradlew createProductionDebugCoverageReport # - adb -s testApi27 emu kill # - ./gradlew test # artifacts: # expire_in: 3 days # paths: # - app/build/reports/androidTests/connected/ # - app/build/reports/coverage/production/ # - app/build/tests/ # when: manual build: image: "0xacab.org:4567/leap/bitmask_android/android-ndk:latest" stage: build script: - ./scripts/cleanProject.sh - ./scripts/build_deps.sh >> build_deps.log 2>&1 - ./gradlew clean assembleNormalProductionFatDebug -debug >> build.log 2>&1 artifacts: untracked: true paths: - app/build/outputs/ - build_deps.log - build.log when: always expire_in: 3 days build_double_release: image: "0xacab.org:4567/leap/bitmask_android/android-ndk:latest" stage: build script: - ./scripts/prepareForDistribution.sh build -allflavors -aab -apk web -no-tag >> normalRelease.log 2>&1 artifacts: paths: - app/build/outputs/ - currentReleases/ - normalRelease.log when: always expire_in: 1 week when: manual build_release: image: "0xacab.org:4567/leap/bitmask_android/android-ndk:latest" stage: build script: - ./scripts/prepareForDistribution.sh build -aab -apk web -no-tag >> normalRelease.log 2>&1 artifacts: paths: - app/build/outputs/ - currentReleases/ - normalRelease.log when: always expire_in: 1 week when: manual build_fdroid_beta_release: image: "0xacab.org:4567/leap/bitmask_android/android-ndk:latest" stage: build script: - ./scripts/prepareForDistribution.sh build -no-tag -beta >> normalBeta.log 2>&1 artifacts: paths: - app/build/outputs/ - currentReleases/ - normalBeta.log when: always expire_in: 1 week when: manual build_custom_release: image: "0xacab.org:4567/leap/bitmask_android/android-ndk:latest" stage: build script: - ./scripts/prepareForDistribution.sh build -aab -apk web -no-tag -custom >> customRelease.log 2>&1 artifacts: paths: - app/build/outputs/ - currentReleases/ - customRelease.log when: always expire_in: 1 week when: manual build_fdroid_custom_beta_release: image: "0xacab.org:4567/leap/bitmask_android/android-ndk:latest" stage: build script: - ./scripts/prepareForDistribution.sh build -no-tag -beta -custom >> customBeta.log 2>&1 artifacts: paths: - app/build/outputs/ - currentReleases/ - customBeta.log when: always expire_in: 1 week when: manual