From 44a5b4101754ef10675cc632a51d499cb87ccdf6 Mon Sep 17 00:00:00 2001 From: Kirill Kamakin Date: Sat, 13 Nov 2021 18:00:44 +0300 Subject: [PATCH] Use Docker image with android SDK instead of downloading it --- .gitlab-ci.yml | 65 +++++--------------------------------------------- 1 file changed, 6 insertions(+), 59 deletions(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 8a7797c..d3ab1d8 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -1,58 +1,9 @@ -image: openjdk:11-jdk +image: androidsdk/android-30 -variables: - - # ANDROID_COMPILE_SDK is the version of Android you're compiling with. - # It should match compileSdkVersion. - ANDROID_COMPILE_SDK: "31" - - # ANDROID_BUILD_TOOLS is the version of the Android build tools you are using. - # It should match buildToolsVersion. - ANDROID_BUILD_TOOLS: "30.0.2" - - # 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: "7583922" - -# 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_SDK_ROOT for moving/exporting the downloaded sdk into it - - export ANDROID_SDK_ROOT="${PWD}/android-home" - # Create a new directory at specified location - - install -d $ANDROID_SDK_ROOT - # 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 --continue --output-document=$ANDROID_SDK_ROOT/cmdline-tools.zip https://dl.google.com/android/repository/commandlinetools-linux-${ANDROID_SDK_TOOLS}_latest.zip - # move to the archive at ANDROID_SDK_ROOT - - pushd $ANDROID_SDK_ROOT - - unzip -d cmdline-tools cmdline-tools.zip - - pushd cmdline-tools - # since commandline tools version 7583922 the root folder is named "cmdline-tools" so we rename it if necessary - - mv cmdline-tools tools || true - - popd - - popd - - export PATH=$PATH:${ANDROID_SDK_ROOT}/cmdline-tools/tools/bin/ - - # Nothing fancy here, just checking sdkManager version - - sdkmanager --version - - # use yes to accept all licenses - - yes | sdkmanager --licenses || true - - sdkmanager "platforms;android-${ANDROID_COMPILE_SDK}" - - sdkmanager "platform-tools" - - sdkmanager "build-tools;${ANDROID_BUILD_TOOLS}" - - # Not necessary, but just for surity + # Shouldn't be necessary, but just to be sure - chmod +x ./gradlew - + # Ask gradle to put everything to .gradle dir so that we can cache it - export GRADLE_USER_HOME=`pwd`/.gradle cache: @@ -60,26 +11,23 @@ cache: paths: - .gradle/wrapper - .gradle/caches - - android-home stages: - lint - build - test -# Basic android and gradle stuff -# Check linting lintDebug: interruptible: true stage: lint needs: [ ] script: - - ./gradlew -Pci --console=plain lintDebug -PbuildDir=lint + - ./gradlew lintDebug artifacts: + when: always paths: - app/lint -# Make Project assembleDebug: interruptible: true stage: build @@ -90,13 +38,12 @@ assembleDebug: paths: - app/build/outputs/ -# Run all tests, if any fails, interrupt the pipeline(fail it) debugTests: interruptible: true stage: test needs: ["assembleDebug"] script: - - ./gradlew -Pci --console=plain testDebug + - ./gradlew testDebug artifacts: when: always reports: