сегодня я хочу использовать CI / CD на Gitlab для моего проекта Android. Тогда я использую .gitlab-ci.yml со стандартной конфигурацией, подобной этой:
image: openjdk:8-jdk #Defining the Docker Image
variables:
ANDROID_COMPILE_SDK: "28" #set compile SDK version
ANDROID_BUILD_TOOLS: "28.0.2" #set build tool version
ANDROID_SDK_TOOLS: "4333796" #set SDK tool build number you can find yous here https://developer.android.com/studio/releases/sdk-tools
before_script:
#Installing Packages
- apt-get --quiet update --yes
- apt-get --quiet install --yes wget tar unzip lib32stdc++6 lib32z1
#Installing the Android SDK
- wget --quiet --output-document=android-sdk.zip https://dl.google.com/android/repository/sdk-tools-linux-${ANDROID_SDK_TOOLS}.zip
- unzip -d android-sdk-linux android-sdk.zip
- echo y | android-sdk-linux/tools/bin/sdkmanager "platforms;android-${ANDROID_COMPILE_SDK}" >/dev/null
- echo y | android-sdk-linux/tools/bin/sdkmanager "platform-tools" >/dev/null
- echo y | android-sdk-linux/tools/bin/sdkmanager "build-tools;${ANDROID_BUILD_TOOLS}" >/dev/null
#Setting up the environment variable
- export ANDROID_HOME=$PWD/android-sdk-linux
- export PATH=$PATH:$PWD/android-sdk-linux/platform-tools/
- chmod +x ./gradlew #set executable permission
# temporarily disable checking for EPIPE error and use yes to accept all licenses
- set +o pipefail
- yes | android-sdk-linux/tools/bin/sdkmanager --licenses # accept SDK licences
- set -o pipefail
# - build_release_android
stages:
- build_release_android
build_release_android:
stage: build_release_android
script:
- mkdir /PlayJson #make temp directory named PlayJson in root of project
- "echo $PLAY_STORE_JSON > /PlayJson/play-store-key.json" # copy git variable value to play-store-key.json file
- ./gradlew publishApkRelease # command to publish app on play store
only:
- hotfix/translation #set trigger for CICD if push or merge in master branch
artifacts:
paths:
- ./app/build/outputs/ # set artifact path which store your APK file
Затем я отправляю источник в мою ветку, а Gitlab работает с CI / CD, покажу ошибку, как это:
* Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output. Run with --scan to get full insights.
* Get more help at https://help.gradle.org
Deprecated Gradle features were used in this build, making it incompatible with Gradle 5.0.
See https://docs.gradle.org/4.6/userguide/command_line_interface.html#sec:command_line_warnings
в моем Android Project с использованием gradle 3.2.1 и некоторой конфигурации, подобной этой:
buildscript {
repositories {
jcenter()
maven { url 'https://maven.fabric.io/public' }
maven { url "https://jitpack.io" }
google()
}
dependencies {
classpath 'com.android.tools.build:gradle:3.2.1'
classpath 'com.google.gms:google-services:4.2.0'
classpath 'com.github.triplet.gradle:play-publisher:1.2.0'
//noinspection GradleDynamicVersion
classpath 'io.fabric.tools:gradle:1.+'
}
}
allprojects {
repositories {
jcenter()
maven { url 'https://maven.fabric.io/public' }
maven { url "https://jitpack.io" }
google()
}
}
task wrapper(type: Wrapper) {
gradleVersion = '4.4'
distributionUrl = distributionUrl.replace("bin", "all")
}
У меня вопрос: можем ли мы изменить конфигурацию на Gitlab или, если нет, как исправить мою ошибку следующим образом?
Если вы пробовали gitlab для CI / CD и у меня есть дополнительные полезные конфигурации, вы можете поделиться ими со мной, что также очень полезно. спасибо