diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 8e1425c3c2212c4c28bd806f9d4957db457db66f..fe7958b52445977ce62a8111f7fdaf06bfbfae54 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -1,6 +1,7 @@ image: registry.gitlab.e.foundation/e/os/docker-android-apps-cicd:latest variables: + GRADLE_USER_HOME: "$CI_PROJECT_DIR/.gradle" SENTRY_DSN: $SENTRY_DSN APK_PATH: "app/build/outputs/apk/release" UNSIGNED_APK: "AppLounge_release.apk" @@ -10,7 +11,6 @@ variables: stages: - build - - test-coverage - publish before_script: @@ -50,36 +50,53 @@ before_script: - if: '$CI_COMMIT_TAG !~ "/^$/"' when: always -test: - stage: test-coverage +.build: + stage: build + allow_failure: false rules: *rules_merge_request_ref - needs: - - job: build script: - - ./gradlew testReleaseUnitTest jacocoReleaseReport -PtestAccountName="$testAccountName" -PtestAccountPwd="$testAccountPwd" -PtestServerUrl="$testServerUrl" + - ./gradlew testReleaseUnitTest jacocoReleaseReport -PtestAccountName="$testAccountName" -PtestAccountPwd="$testAccountPwd" -PtestServerUrl="$testServerUrl" lintRelease detekt assembleRelease --parallel --build-cache --configure-on-demand --no-daemon - python3 scripts/print_instruction_coverage.py app/build/reports/jacoco/jacocoReleaseReport/jacocoReleaseReport.xml coverage: "/Total.*?([0-9]{1,3})%/" artifacts: - when: always paths: + - app/build/outputs/apk/release + - app/build/reports/ + - build/reports/ - app/build/test-results/*/TEST-*.xml - - app/build/reports/tests/* - - app/build/reports/jacoco/jacocoReleaseReport/jacocoReleaseReport.xml reports: junit: app/build/test-results/*/TEST-*.xml coverage_report: coverage_format: jacoco path: app/build/reports/jacoco/jacocoReleaseReport/jacocoReleaseReport.xml -build: +build-release: + extends: .build + cache: + key: ${CI_PROJECT_ID} + paths: + - .gradle/ + policy: pull + +build-generate-cache: + extends: .build + rules: + - when: manual + cache: + key: ${CI_PROJECT_ID} + paths: + - .gradle/ + policy: pull-push + +build-debug: stage: build - allow_failure: false - rules: *rules_merge_request_ref + rules: + - when: manual script: - - ./gradlew lint detekt assemble --parallel + - ./gradlew lintDebug assembleDebug --parallel artifacts: paths: - - app/build/outputs/apk/ + - app/build/outputs/apk/debug - app/build/reports/ - build/reports/ @@ -97,7 +114,7 @@ generate-apks: stage: build rules: *rules_merge_request_ref needs: - - job: build + - job: build-release - job: init_submodules script: - | @@ -155,7 +172,7 @@ create-release: publish-authdatalib: stage: publish needs: - - job: build + - job: build-release rules: *rules_publish script: - ./gradlew :auth-data-lib:build @@ -165,7 +182,7 @@ publish-authdatalib: publish-contracts: stage: publish needs: - - job: build + - job: build-release rules: *rules_publish script: - ./gradlew :parental-control-data:build