Skip to content
Snippets Groups Projects
.gitlab-ci.yml 2.74 KiB
Newer Older
Taras's avatar
Taras committed
workflow:
  name: 'Circles release workflow'
  rules:
    - if: $CI_COMMIT_TAG

cache:
  key: ${CI_PROJECT_ID}
  paths:
    - .gradle/

stages:
Taras's avatar
Taras committed
  - build
  - release
  - deploy
Taras's avatar
Taras committed
  - message
Taras's avatar
Taras committed
variables:
Taras's avatar
Taras committed
  ARM64_V8A_CODE: "arm64-v8a"
  PACKAGE_REGISTRY_URL: "${CI_API_V4_URL}/projects/${CI_PROJECT_ID}/packages/generic/circles_release/${CI_COMMIT_TAG}"
  APK_NAME: "circles-$CI_COMMIT_TAG-fdroid-$ARM64_V8A_CODE-release.apk"
  APK_URL: "${PACKAGE_REGISTRY_URL}/circles-$CI_COMMIT_TAG-fdroid-$ARM64_V8A_CODE-release.apk"
  # TODO: Remove when https://github.com/fastlane/fastlane/pull/21950 gets released
  RUBYOPT: "-rostruct"
Taras's avatar
Taras committed


Taras's avatar
Taras committed
before_script:
  - chmod +x ./gradlew
  - echo -n ${SIGNING_KEY_BASE64} | base64 -d > circuli_key.jks
  - echo "KEY_PATH=../circuli_key.jks" > signing.properties
  - echo "KEY_PASSWORD=${KEY_PASSWORD}" >> signing.properties
  - echo "ALIAS_NAME=${ALIAS_NAME}" >> signing.properties
Taras's avatar
Taras committed

Taras's avatar
Taras committed
buildAndUploadFdroid:
Taras's avatar
Taras committed
  image: softartdev/android-fastlane
  stage: build
  script:
    - echo "Building F-Droid apk"
    - ./gradlew clean
    - ./gradlew assembleFdroidRelease
Taras's avatar
Taras committed
    - |
Taras's avatar
Taras committed
      curl --header "JOB-TOKEN: ${CI_JOB_TOKEN}" --upload-file app/build/outputs/apk/fdroid/release/$APK_NAME "${APK_URL}"
Taras's avatar
Taras committed

createGitlabRelease:
  stage: release
  image: registry.gitlab.com/gitlab-org/release-cli:latest
  script:
    - echo "Running the release job"
Taras's avatar
Taras committed
    - CHANGELOG_FILE_PATH=$(ls -l fastlane/metadata/android/en-US/changelogs/*.txt | sort -k 9,9 -r | head -n 1 | awk '{print $NF}')
    - CHANGELOG_TEXT=$(cat $CHANGELOG_FILE_PATH)
    - echo -e $CHANGELOG_TEXT >> description.txt
Taras's avatar
Taras committed
  release:
    tag_name: $CI_COMMIT_TAG
    name: 'Version $CI_COMMIT_TAG'
Taras's avatar
Taras committed
    description: description.txt
Taras's avatar
Taras committed
    assets:
      links:
Taras's avatar
Taras committed
        - name: 'F-Droid release apk $ARM64_V8A_CODE $CI_COMMIT_TAG'
          url: '${APK_URL}'
Taras's avatar
Taras committed

Taras's avatar
Taras committed
uploadPlayStore:
Taras's avatar
Taras committed
  image: softartdev/android-fastlane
  stage: deploy
  script:
Taras's avatar
Taras committed
    - echo "Running the uploadPlayStore job"
Taras's avatar
Taras committed
    - bundle install
    - echo ${GPLAY_API_KEY_JSON} > google_play_api_key.json
    - bundle exec fastlane deployGoogle

sendZulipMessage:
  stage: message
  script:
    - apk update
    - apk add curl
    - CHANGELOG_FILE_PATH=$(ls -l fastlane/metadata/android/en-US/changelogs/*.txt | sort -k 9,9 -r | head -n 1 | awk '{print $NF}')
    - CHANGELOG_TEXT=$(cat $CHANGELOG_FILE_PATH)
    - |
      MESSAGE="Circles Android ${CI_COMMIT_TAG}
      $CHANGELOG_TEXT

      Gitlab release - https://gitlab.futo.org/circles/circles-android/-/releases/${CI_COMMIT_TAG}
      Direct ${ARM64_V8A_CODE} apk link - ${APK_URL}"
    - curl -X POST https://zulip.futo.org/api/v1/messages -u circles-bot@zulip.futo.org:$ZULIP_BOT_KEY --data-urlencode type=stream --data-urlencode 'to="circles"' --data-urlencode topic=Releases -G --data-urlencode "content=$MESSAGE"