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

Commit 96e182ae authored by Hasib Prince's avatar Hasib Prince
Browse files

Merge branch '2288-add_release_job' into 'main'

2288 add release job

See merge request !160
parents f233446a 1927289c
Loading
Loading
Loading
Loading
Loading
+91 −0
Original line number Diff line number Diff line
image: "registry.gitlab.e.foundation/e/os/docker-android-apps-cicd:master"

variables:
  APK_PATH: "app/k9mail/build/outputs/apk/release"
  UNSIGNED_APK: "Mail-unsigned.apk"
  COMMUNITY_APK: "Mail-community.apk"
  OFFICIAL_APK: "Mail-official.apk"

stages:
- update-from-upstream
- build
- gitlab_release

before_script:
- export GRADLE_USER_HOME=$(pwd)/.gradle
@@ -22,10 +29,94 @@ build:
  stage: build
  script:
  - ./gradlew :app:k9mail:build
  - cd app/k9mail/build/outputs/apk/
  - |
    if [[ ! -d "release" ]]; then
      echo "$APK_PATH does not exist."
      exit 1
    fi
    cd "release"
    unsigned_build=$(ls *.apk | grep "unsigned")
    cp $unsigned_build $UNSIGNED_APK
  artifacts:
    paths:
    - app/k9mail/build/outputs/apk/

init_submodules:
  stage: gitlab_release
  rules:
    - if: '$CI_COMMIT_TAG && $CI_COMMIT_REF_PROTECTED == "true"'
      when: on_success
  script:
    - |
      git clone https://gitlab.e.foundation/e/os/system-apps-update-info.git systemAppsUpdateInfo
  artifacts:
    paths:
      - systemAppsUpdateInfo/scripts/

generate-apks:
  stage: gitlab_release
  rules:
    - if: '$CI_COMMIT_TAG && $CI_COMMIT_REF_PROTECTED == "true"'
      when: on_success
  needs:
    - init_submodules
    - build
  dependencies:
    - init_submodules
    - build
  before_script:
    - apt update && apt install apksigner -y
  script:
    - |
      ./systemAppsUpdateInfo/scripts/generate-apks.sh \
      "$APK_PATH" "$UNSIGNED_APK" "$COMMUNITY_APK" "$OFFICIAL_APK"
  artifacts:
    paths:
      - $APK_PATH/$UNSIGNED_APK
      - $APK_PATH/$COMMUNITY_APK
      - $APK_PATH/$OFFICIAL_APK

create-json-files:
  stage: gitlab_release
  dependencies:
    - init_submodules
    - generate-apks
  needs:
    - init_submodules
    - generate-apks
  rules:
    - if: '$CI_COMMIT_TAG && $CI_COMMIT_REF_PROTECTED == "true"'
      when: manual
  before_script:
    - apt update && apt install jq aapt -y
  script:
    - |
      ./systemAppsUpdateInfo/scripts/create-json-files.sh \
      "$APK_PATH" "$UNSIGNED_APK" "$COMMUNITY_APK" "$OFFICIAL_APK"
  artifacts:
    paths:
      - community.json
      - official.json

create-release:
  stage: gitlab_release
  dependencies:
    - init_submodules
  needs:
    - init_submodules
    - create-json-files
    - generate-apks
  rules:
    - if: '$CI_COMMIT_TAG && $CI_COMMIT_REF_PROTECTED == "true"'
      when: on_success
  before_script:
    - apt update && apt install jq -y
  script:
    - |
      ./systemAppsUpdateInfo/scripts/create-release.sh \
      "$APK_PATH" "$UNSIGNED_APK" "$COMMUNITY_APK" "$OFFICIAL_APK"

.update-from-upstream:
  image: registry.gitlab.e.foundation/e/tools/docker-tools:latest
  stage: update-from-upstream