AdvancedPrivacy/.gitlab-ci.yml

94 lines
2.0 KiB
YAML
Raw Normal View History

2024-01-29 17:15:17 +01:00
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