stages: - lint - test - build # By default load dev keys. variables: MAPBOX_KEY: $MAPBOX_KEY_DEV SENTRY_DSN: $SENTRY_DSN default: image: "registry.gitlab.e.foundation/e/os/docker-android-apps-cicd:latest" before_script: - export GRADLE_USER_HOME=$(pwd)/.gradle - chmod +x ./gradlew #tags: # - android cache: key: ${CI_PROJECT_ID} paths: - .gradle/ lint: stage: lint script: - ./gradlew spotlessCheck - ./gradlew detekt rules: - if: $CI_PIPELINE_SOURCE == "merge_request_event" when: on_success - if: $CI_COMMIT_BRANCH == "main" when: on_success artifacts: paths: - build/reports/detekt/ # No unit tests yet. #unit-test: # stage: test # script: # - ./gradlew :testDebugUnitTest # rules: # - if: '$CI_PIPELINE_SOURCE == "merge_request_event"' # when: on_success # - if: $CI_COMMIT_BRANCH == "main" # when: on_success # artifacts: # paths: # - ./**/build/reports/tests/testDebugUnitTest build-debug: stage: build script: - ./gradlew :app:assembleEosDebug rules: - if: $CI_PIPELINE_SOURCE == "merge_request_event" when: on_success artifacts: paths: - app/build/outputs/apk # Check that the release build works, but don't keep the artifacts. build-release-test: stage: test script: - ./gradlew :app:assembleEosRelease rules: - if: $CI_COMMIT_BRANCH == "main" variables: MAPBOX_KEY: $MAPBOX_KEY_PROD when: on_success build-e-release: stage: build script: - ./gradlew :app:assembleEosRelease rules: - if: $CI_PIPELINE_SOURCE == "merge_request_event" when: never - if: $CI_COMMIT_REF_PROTECTED == "true" && $CI_COMMIT_TAG =~ /^eOS-v\d+\.\d+(\.\d+)$/ variables: MAPBOX_KEY: $MAPBOX_KEY_PROD when: on_success - if: $CI_COMMIT_REF_PROTECTED == "true" variables: MAPBOX_KEY: $MAPBOX_KEY_PROD when: manual artifacts: paths: - app/build/outputs/apk - app/build/reports