Circle CI 2.0 Android assembleDebug всегда терпит неудачу

Каждый раз, когда Circle CI запускает ./gradlew assembleDebug часть, всегда происходит сбой. Я не знаю, в чем проблема, но я пробовал много способов, например, запускал его с daemon и без него или настраивал gradle.properties. Я искал ответы в Google и SO, но до сих пор не могу найти правильный. Вот ошибка

Демон сборки Gradle неожиданно исчез (возможно, он был убит или произошел сбой)

Вот мой config.yml

version: 2
references:
  ## Workspaces
  workspace: &workspace
    ~/src

  save_workspace_artifacts: &save_workspace_artifacts
    store_artifacts:
      path: outputs/outputs/apk

  attach_workspace_artifacts: &attach_workspace_artifacts
    attach_workspace:
      at: outputs

  ## Docker image configurations
  android_config: &android_config
    working_directory: *workspace
    docker:
      - image: circleci/android:api-28-alpha
    environment:
      TERM: dumb
      _JAVA_OPTIONS: "-Xmx2048m -XX:+UnlockExperimentalVMOptions -XX:+UseCGroupMemoryLimitForHeap"
      GRADLE_OPTS: '-Dorg.gradle.jvmargs="-Xmx2048m"'

  ## Cache
  gradle_key: &gradle_key
    jars-{{ checksum "gradle/wrapper/gradle-wrapper.properties" }}-{{ checksum "build.gradle" }}-{{ checksum "app/build.gradle" }}

  gems_key: &gems_key
    gems-{{ checksum "Gemfile.lock" }}

  restore_gradle_cache: &restore_gradle_cache
    restore_cache:
      key: *gradle_key

  restore_gems_cache: &restore_gems_cache
    restore_cache:
      key: *gems_key

  save_gradle_cache: &save_gradle_cache
    save_cache:
      key: *gradle_key
      paths:
        - ~/.gradle
        - ~/.m2

  save_gems_cache: &save_gems_cache
    save_cache:
      key: *gems_key
      paths:
        - vendor/bundle

  ## Dependencies
  ruby_dependencies: &ruby_dependencies
    run:
      name: Download Ruby Dependencies
      command: bundle update || bundle install --path vendor/bundle

  android_dependencies: &android_dependencies
    run:
      name: Download Android Dependencies
      command: ./gradlew androidDependencies

  clean_gradle: &clean_gradle
    run:
      name: Clean gradle || ./gradlew clean
      command: ./gradlew clean

  build_apk: &build_apk
    run:
      name: Build apk || ./gradlew assembleDebug
      command: ./gradlew clean assembleDebug --no-daemon --stacktrace

  deploy_to_hockey: &deploy_to_hockey
    run:
      name: Deploy to hockey app
      command: sh ./scripts/deployHockeyApp.sh

jobs:
  ## Run unit tests
  test_unit:
    <<: *android_config
    steps:
      - checkout
      - run:
          name: Current branch
          command: echo ${CIRCLE_BRANCH}
      - *restore_gradle_cache
      - *restore_gems_cache
      - *ruby_dependencies
      - *android_dependencies
      - *save_gradle_cache
      - *save_gems_cache
      - run:
          name: Run unit tests
          command: bundle exec fastlane unit_tests
      - store_artifacts:
          path: app/build/reports/
          destination: /reports/
      - store_test_results:
          path: app/build/test-results/
          destination: /test-results/

  deploy:
    <<: *android_config
    steps:
      - checkout
      - run:
          name: Upload to HockeyApp
          command: sh ./scripts/deployHockeyApp.sh

  deploy_hockeyapp:
    docker:
      - image: circleci/android:api-28-alpha
    environment:
      JVM_OPTS: -Xmx4G
    steps:
      - checkout
      - restore_cache:
          key: jars-{{ checksum "build.gradle" }}-{{ checksum "app/build.gradle" }}
      - run:
          name: Download Dependencies
          command: ./gradlew androidDependencies
      - save_cache:
          paths:
          - ~/.gradle
          key: jars-{{ checksum "build.gradle" }}-{{ checksum  "app/build.gradle" }}
      - *clean_gradle
      - *build_apk
      - store_artifacts:
          path: app/build/outputs/apk/development
          destination: apks/
      - *deploy_to_hockey

workflows:
  version: 2
  workflow:
    jobs:
      - test_unit
      - deploy_hockeyapp:
          filters:
            branches:
              only:
                - beta
                - develop
                - /test\/ci_fastfile
                - /test\/ci_fastfile2/
                - /test\/ci_fastfile2
      - deploy_play_store:
          filters:
            branches:
              only:
                - production
          requires:
            - test_unit

Всегда сбой на шаге *build_apk

Очень ценю любые комментарии / ответы, работаю над этим 2 дня назад.


person Webster    schedule 14.08.2018    source источник


Ответы (1)


Трудно сказать, что не удается без доступа к вашей машине сборки CircleCI (для проверки журналов и т. д.), но вот конфигурация CiclreCI v2, которая собирает APK и доставляет его в бета-версию Fabric, также работает аналогично доставке APK в каналы google play alpha/beta/prod .

Я использую эту сборку в качестве шаблона, и она работает в нескольких проектах как для сборок Debug, так и для сборок Release с proguard или без него.

version: 2
jobs:
  develop_build:
    working_directory: ~/code
    docker:
      - image: circleci/android:api-27-node8-alpha
    environment:
      JVM_OPTS: -Xmx3200m
    steps:
      - checkout
      - restore_cache:
          key: jars-{{ checksum "build.gradle" }}-{{ checksum  "app/build.gradle" }}
      - run:
          name: Chmod permissions
          command: chmod +x gradlew
      - run:
          name: Download Dependencies
          command: ./gradlew androidDependencies
      - save_cache:
          paths:
            - ~/.gradle
          key: jars-{{ checksum "build.gradle" }}-{{ checksum  "app/build.gradle" }}
      - store_artifacts:
          path: app/build/reports
          destination: reports
      - store_test_results:
          path: app/build/test-results
      - run:
          name: Generate fabric config
          command: ./gradlew fabricProp
      - run:
          name: Build prod release app
          command: ./gradlew assembleProdRelease -PversionCode=$CIRCLE_BUILD_NUM
      - run:
          name: Upload DEVELOP PROD to Fabric Beta
          command: ./gradlew crashlyticsUploadDistributionProdRelease
      - run:
          name: Build dev release app
          command: ./gradlew assembleDevRelease -PversionCode=$CIRCLE_BUILD_NUM
      - run:
          name: Upload DEVELOP DEMO to Fabric Beta
          command: ./gradlew crashlyticsUploadDistributionDevRelease
workflows:
  version: 2
  build_app:
    jobs:
      - develop_build:
          filters:
            branches:
              only: develop
person dilix    schedule 14.08.2018
comment
спасибо за ответ, как я уже сказал, любая помощь будет оценена по достоинству. Сначала проверим вашу конфигурацию, скоро свяжемся с вами - person Webster; 14.08.2018
comment
@Webster У меня это не работает. Что-нибудь еще, кроме того, что вы добавили JVM_OPTS: -Xmx3200m ? - person Hannan Shaik; 24.06.2019
comment
@hannanessay, это было давно, я должен сначала проверить свой ноутбук, сообщу позже - person Webster; 24.06.2019