Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 8004167c authored by Jonathan Klee's avatar Jonathan Klee
Browse files

ci: refactor gitlab-ci.yml

parent 458fcc5e
Loading
Loading
Loading
Loading
Loading
+40 −40
Original line number Diff line number Diff line
@@ -2,6 +2,8 @@ image: registry.gitlab.e.foundation/e/os/docker-android-apps-cicd:latest

variables:
  GRADLE_USER_HOME: "$CI_PROJECT_DIR/.gradle"
  GRADLE_CACHE_KEY: "${CI_PROJECT_ID}"
  GRADLE_RELEASE_ARGS: "--parallel --build-cache --configure-on-demand --no-daemon"
  SENTRY_DSN: $SENTRY_DSN
  APK_PATH: "app/build/outputs/apk/release"
  UNSIGNED_APK: "AppLounge_release.apk"
@@ -33,6 +35,23 @@ before_script:
  - export JAVA_HOME=/usr/lib/jvm/java-21-openjdk-amd64
  - echo user_agent=$USER_AGENT > local.properties

.gradle-cache-pull: &gradle_cache_pull
  key: ${GRADLE_CACHE_KEY}
  paths:
    - .gradle/
  policy: pull

.gradle-cache-pull-push: &gradle_cache_pull_push
  key: ${GRADLE_CACHE_KEY}
  paths:
    - .gradle/
  policy: pull-push

.needs-release-artifacts: &needs_release_artifacts
  - job: generate-apks
  - job: create-json-files
    artifacts: false

.rules_merge_request_ref:
  rules: &rules_merge_request_ref
    - if: '$CI_PIPELINE_SOURCE == "push" && $CI_COMMIT_BRANCH && $CI_OPEN_MERGE_REQUESTS'
@@ -76,7 +95,7 @@ before_script:
  stage: build
  rules: *rules_merge_request_ref
  script:
    - ./gradlew testReleaseUnitTest jacocoReleaseReport -PtestAccountName="$testAccountName" -PtestAccountPwd="$testAccountPwd" -PtestServerUrl="$testServerUrl" lintRelease detekt assembleRelease --parallel --build-cache --configure-on-demand --no-daemon
    - ./gradlew testReleaseUnitTest jacocoReleaseReport -PtestAccountName="$testAccountName" -PtestAccountPwd="$testAccountPwd" -PtestServerUrl="$testServerUrl" lintRelease detekt assembleRelease $GRADLE_RELEASE_ARGS
    - python3 scripts/print_instruction_coverage.py app/build/reports/jacoco/jacocoReleaseReport/jacocoReleaseReport.xml
  coverage: "/Total.*?([0-9]{1,3})%/"
  artifacts:
@@ -95,30 +114,18 @@ build-release:
  extends: .build
  rules: *rules_protected_ref
  allow_failure: false
  cache:
    key: ${CI_PROJECT_ID}
    paths:
      - .gradle/
    policy: pull
  cache: *gradle_cache_pull

build-generate-cache:
  extends: .build
  allow_failure: true
  rules:
    - when: manual
  cache:
    key: ${CI_PROJECT_ID}
    paths:
      - .gradle/
    policy: pull-push
  cache: *gradle_cache_pull_push

build-debug:
  stage: build
  cache:
    key: ${CI_PROJECT_ID}
    paths:
      - .gradle/
    policy: pull
  cache: *gradle_cache_pull
  allow_failure: true
  rules:
    - when: manual
@@ -149,6 +156,19 @@ generate-apks:
      - $APK_PATH/$OFFICIAL_APK
      - $APK_PATH/$TEST_APK

.publish-release-from-apks:
  stage: publish
  rules: *rules_protected_tag_manual
  needs: *needs_release_artifacts
  allow_failure: true

.publish-library:
  stage: publish
  needs:
    - job: build-release
  rules: *rules_publish
  allow_failure: true

create-json-files:
  stage: publish
  rules: *rules_protected_tag
@@ -165,47 +185,27 @@ create-json-files:
      - test.json

create-test-release:
  stage: publish
  rules: *rules_protected_tag_manual
  needs:
    - job: generate-apks
    - job: create-json-files
      artifacts: false
  extends: .publish-release-from-apks
  script:
    - |
      ./systemAppsUpdateInfo/scripts/create-test-release.sh \
      "$APK_PATH" "$TEST_APK"
  allow_failure: true

create-release:
  stage: publish
  rules: *rules_protected_tag_manual
  needs:
    - job: generate-apks
    - job: create-json-files
      artifacts: false
  extends: .publish-release-from-apks
  script:
    - |
      ./systemAppsUpdateInfo/scripts/create-release.sh \
      "$APK_PATH" "$UNSIGNED_APK" "$COMMUNITY_APK" "$OFFICIAL_APK"
  allow_failure: true

publish-authdatalib:
  stage: publish
  needs:
    - job: build-release
  rules: *rules_publish
  extends: .publish-library
  script:
    - ./gradlew :auth-data-lib:build
    - ./gradlew :auth-data-lib:publish
  allow_failure: true

publish-contracts:
  stage: publish
  needs:
    - job: build-release
  rules: *rules_publish
  extends: .publish-library
  script:
    - ./gradlew :parental-control-data:build
    - ./gradlew :parental-control-data:publish
  allow_failure: true