Last active
September 27, 2021 20:51
-
-
Save masoudd2159/4dc1960616e967f65fc043cf57bc14f2 to your computer and use it in GitHub Desktop.
gitlab ci
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
image: openjdk:11-jdk | |
variables: | |
# ANDROID_COMPILE_SDK is the version of Android you're compiling with. | |
# It should match compileSdkVersion. | |
ANDROID_COMPILE_SDK: "29" | |
# ANDROID_BUILD_TOOLS is the version of the Android build tools you are using. | |
# It should match buildToolsVersion. | |
ANDROID_BUILD_TOOLS: "29.0.3" | |
# It's what version of the command line tools we're going to download from the official site. | |
# Official Site-> https://developer.android.com/studio/index.html | |
# There, look down below at the cli tools only, sdk tools package is of format: | |
# commandlinetools-os_type-ANDROID_SDK_TOOLS_latest.zip | |
# when the script was last modified for latest compileSdkVersion, it was which is written down below | |
ANDROID_SDK_TOOLS: "6514223" | |
# Packages installation before running script | |
before_script: | |
- apt-get --quiet update --yes | |
- apt-get --quiet install --yes wget tar unzip lib32stdc++6 lib32z1 | |
# Setup path as android_home for moving/exporting the downloaded sdk into it | |
- export ANDROID_HOME="${PWD}/android-home" | |
# Create a new directory at specified location | |
- install -d $ANDROID_HOME | |
# Here we are installing androidSDK tools from official source, | |
# (the key thing here is the url from where you are downloading these sdk tool for command line, so please do note this url pattern there and here as well) | |
# after that unzipping those tools and | |
# then running a series of SDK manager commands to install necessary android SDK packages that'll allow the app to build | |
- wget --output-document=$ANDROID_HOME/cmdline-tools.zip https://dl.google.com/android/repository/commandlinetools-linux-${ANDROID_SDK_TOOLS}_latest.zip | |
# move to the archive at ANDROID_HOME | |
- pushd $ANDROID_HOME | |
- unzip -d cmdline-tools cmdline-tools.zip | |
- popd | |
- export PATH=$PATH:${ANDROID_HOME}/cmdline-tools/tools/bin/ | |
# use yes to accept all licenses | |
- yes | sdkmanager --sdk_root=${ANDROID_HOME} --licenses || true | |
- sdkmanager --sdk_root=${ANDROID_HOME} "platforms;android-${ANDROID_COMPILE_SDK}" | |
- sdkmanager --sdk_root=${ANDROID_HOME} "platform-tools" | |
- sdkmanager --sdk_root=${ANDROID_HOME} "build-tools;${ANDROID_BUILD_TOOLS}" | |
# Not necessary, but just for surity | |
- chmod +x ./gradlew | |
stages: | |
- build | |
- release | |
- deploy | |
assembleDebug: | |
interruptible: true | |
stage: build | |
script: | |
- ./gradlew assembleDebug | |
artifacts: | |
paths: | |
- app/build/outputs/ | |
retry: 2 | |
tags: | |
- android | |
assembleRelease: | |
stage: release | |
script: | |
- echo $KEYSTORE_FILE | base64 -d > my.keystore | |
- ./gradlew assembleRelease | |
-Pandroid.injected.signing.store.file=$(pwd)/my.keystore | |
-Pandroid.injected.signing.store.password=$KEYSTORE_PASSWORD | |
-Pandroid.injected.signing.key.alias=$KEY_ALIAS | |
-Pandroid.injected.signing.key.password=$KEY_PASSWORD | |
artifacts: | |
paths: | |
- app/build/outputs/apk/release | |
retry: 2 | |
tags: | |
- android | |
deploy: | |
stage: deploy | |
script: | |
- mv app/build/outputs/apk/release/app-release.apk app/build/outputs/apk/release/${APPLICATION_NAME}${APPLICATION_VERSION}.apk | |
- curl -F document=@"app/build/outputs/apk/release/${APPLICATION_NAME}${APPLICATION_VERSION}.apk" -F caption="${TELEGRAM_MESSAGE_CAPTION}" https://api.telegram.org/bot${TELEGRAM_BOT_TOKEN}/sendDocument?chat_id=${TELEGRAM_CHAT_ID} | |
only: | |
- main | |
tags: | |
- android | |
variables: | |
# APPLICATION VERSION | |
APPLICATION_VERSION: "X.XX.XXX" | |
# APPLICATION NAME | |
APPLICATION_NAME: "APP_NAME" | |
# CHANNEL CHAT ID | |
TELEGRAM_CHAT_ID: "TELEGRAM_CHAT_ID" | |
# BOT TOKEN | |
TELEGRAM_BOT_TOKEN: "TELEGRAM_BOT_API_TOKEN" | |
# DISCRIPTION | |
TELEGRAM_MESSAGE_CAPTION: "DISCRIPTION" |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment