60 lines
2.5 KiB
Docker
60 lines
2.5 KiB
Docker
FROM gradle:5.6.4-jdk8
|
|
USER root
|
|
|
|
ARG BASE_URL
|
|
ARG FLAVOR
|
|
ARG RAZORPAY_KEY
|
|
ARG RELEASE_STORE_FILE
|
|
ARG RELEASE_STORE_PASSWORD
|
|
ARG RELEASE_KEY_PASSWORD
|
|
ARG RELEASE_KEY_ALIAS
|
|
ARG NEXUS_URL
|
|
ARG NEXUS_USERNAME
|
|
ARG NEXUS_PASSWORD
|
|
|
|
ENV SDK_URL="https://dl.google.com/android/repository/sdk-tools-linux-3859397.zip" \
|
|
ANDROID_HOME="/android" \
|
|
WORK_DIR="/android/navi" \
|
|
ANDROID_APK_DIR="app/build/outputs/apk" \
|
|
ANDROID_VERSION=29 \
|
|
ANDROID_BUILD_TOOLS_VERSION=29.0.2
|
|
|
|
RUN mkdir "$ANDROID_HOME" .android \
|
|
&& cd "$ANDROID_HOME" \
|
|
&& curl -o sdk.zip $SDK_URL \
|
|
&& unzip sdk.zip \
|
|
&& rm sdk.zip \
|
|
&& mkdir "$ANDROID_HOME/licenses" || true \
|
|
&& echo "24333f8a63b6825ea9c5514f83c2829b004d1fee" > "$ANDROID_HOME/licenses/android-sdk-license" \
|
|
&& yes | $ANDROID_HOME/tools/bin/sdkmanager --licenses
|
|
|
|
RUN $ANDROID_HOME/tools/bin/sdkmanager --update
|
|
RUN $ANDROID_HOME/tools/bin/sdkmanager "build-tools;${ANDROID_BUILD_TOOLS_VERSION}" \
|
|
"platforms;android-${ANDROID_VERSION}" \
|
|
"platform-tools"
|
|
RUN apt-get update && apt-get install build-essential -y && apt-get install file -y && apt-get install apt-utils -y
|
|
|
|
COPY . $WORK_DIR
|
|
WORKDIR $WORK_DIR
|
|
RUN echo ${RELEASE_STORE_FILE} | base64 -d >> app/navi-release-key.jks
|
|
|
|
RUN bash -c " \
|
|
if [ $FLAVOR = TEST ] ; then \
|
|
./gradlew clean :app:testDevDebugUnitTest --tests com.naviapp.CleanupCustomers executeDevDebugTestsOnBrowserstack; \
|
|
\
|
|
elif [ $FLAVOR = DEV ] ; then \
|
|
./gradlew clean \
|
|
assembleDev -PBASE_URL=${BASE_URL} -PFLAVOR=${FLAVOR} -PRELEASE_STORE_PASSWORD=${RELEASE_STORE_PASSWORD} -PRELEASE_KEY_PASSWORD=${RELEASE_KEY_PASSWORD} -PRELEASE_KEY_ALIAS=${RELEASE_KEY_ALIAS} ; \
|
|
\
|
|
elif [ $FLAVOR = QA ] ; then \
|
|
./gradlew clean \
|
|
assembleQa -PBASE_URL=${BASE_URL} -PFLAVOR=${FLAVOR} -PRELEASE_STORE_PASSWORD=${RELEASE_STORE_PASSWORD} -PRELEASE_KEY_PASSWORD=${RELEASE_KEY_PASSWORD} -PRELEASE_KEY_ALIAS=${RELEASE_KEY_ALIAS} ; \
|
|
\
|
|
elif [ $FLAVOR = PROD ] ; then \
|
|
./gradlew clean \
|
|
assembleProd -PBASE_URL=${BASE_URL} -PRAZORPAY_KEY=${RAZORPAY_KEY} -PMOENGAGE_KEY=${MOENGAGE_KEY} -PAPPSFLYER_KEY=${APPSFLYER_KEY} -PFLAVOR=${FLAVOR} -PRELEASE_STORE_PASSWORD=${RELEASE_STORE_PASSWORD} -PRELEASE_KEY_PASSWORD=${RELEASE_KEY_PASSWORD} -PRELEASE_KEY_ALIAS=${RELEASE_KEY_ALIAS} ; \
|
|
\
|
|
else echo 'ERROR: Flavor not mentioned' ; \
|
|
fi ;"
|
|
RUN bash -c "if [ $FLAVOR != TEST ] ; then ./gradlew uploadArchives -PFLAVOR=${FLAVOR} -PNEXUS_URL=${NEXUS_URL} -PNEXUS_USERNAME=${NEXUS_USERNAME} -PNEXUS_PASSWORD=${NEXUS_PASSWORD} ; fi ;"
|