Gitlab CI / CD Show Устаревшие функции Gradle были использованы в этой сборке, что делает ее несовместимой с Gradle 5.0 - PullRequest
0 голосов
/ 28 марта 2019

сегодня я хочу использовать 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 и у меня есть дополнительные полезные конфигурации, вы можете поделиться ими со мной, что также очень полезно. спасибо

1 Ответ

0 голосов
/ 10 июля 2019

Проблема в local.properties , которую необходимо игнорировать в .gitIgnore , поэтому поместите ее в gitIgnore, а затем нажмите на ветку.

После этого вы должны сбросить кеш git с помощью этой команды:

git rm -r --cached .

Затем нажмите еще раз, и я обещаю, что ваш CI / CD может работать успешно.

...