【问题标题】:Action failed: gradle dependencies CircleCi操作失败:gradle 依赖 CircleCi
【发布时间】:2017-04-13 19:32:12
【问题描述】:

我已集成 CircleCI 以在我的应用上运行 Espresso 测试。我从另一个在线 github 存储库中获取了以下 circle.yml 文件,并将 android 构建工具和 android 版本更改为 25。但是,当我在 circleCI 服务器上运行构建时,出现以下错误。我已经在 yml 文件中授予了执行权限。

我的应用回购结构是

Action failed: gradle dependencies

export TERM="dumb"
if [ -e ./gradlew ]; then ./gradlew dependencies;else gradle dependencies;fi
bash: line 2: ./gradlew: Permission denied

export TERM="dumb"
if [ -e ./gradlew ]; then ./gradlew dependencies;else gradle dependencies;fi
 returned exit code 126

Action failed: gradle dependencies

circle.yml:

general:
    artifacts:
        - /home/ubuntu/MyRideApp/app/build/outputs/apk/

machine:
    environment:
        ANDROID_HOME: /usr/local/android-sdk-linux
        ADB_INSTALL_TIMEOUT: 240
        GRADLE_OPTS: '-Dorg.gradle.jvmargs="-Xmx3072M -XX:+HeapDumpOnOutOfMemoryError"'

dependencies:
    pre:
        - chmod +x gradlew
        - touch app/google-services.json
        - echo y | android update sdk --no-ui --all --filter "tools,android-25,build-tools-25.0.2,platform-tools,extra-android-m2repository,extra-android-support,extra-google-m2repository,extra-google-google_play_services"
    cache_directories:
        - /usr/local/android-sdk-linux/tools
        - /usr/local/android-sdk-linux/build-tools/25.0.2

    override:
            - ANDROID_HOME=/usr/local/android-sdk-linux ./gradlew dependencies

# Comment the test stuff out (or remove it) if you don't need it.
test:
  pre:
    - emulator -avd circleci-android23 -no-audio -no-window:
          background: true
          parallel: true
    - circle-android wait-for-boot
    # unlock emulator
    - sleep 30
    - adb shell input keyevent 82

  override:
#    - ./gradlew clean assemble
    # This will run the tests:
   - ./gradlew assemble connectedDebugAndroidTest -PdisablePreDex --console=plain --info

  post:
      - cp -r app/build/outputs $CIRCLE_ARTIFACTS
      - cp -r app/build/outputs/androidTest-results/connected/ $CIRCLE_TEST_REPORTS

gradle/wrapper/gradle-wrapper.properties

distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-3.3-all.zip

/gradle/wrapper 确实包含 gradle-wrapper.jar

【问题讨论】:

  • 这有点不清楚 - 整个 if [ -e ./gradlew ] ... 内容不存在于您在此处粘贴的 circle.yml 中。
  • 我是直接从他们网站上的circle ci 控制台获取的。你能告诉我如何找到完整的堆栈跟踪吗?
  • 我无法确定可以从哪里运行。 CircleCI 结果页面说这对应于哪个步骤?
  • 对应gradle依赖步骤
  • 但是你在此处发布的 yml 文件中没有“gradle dependencies”步骤(最接近的是ANDROID_HOME=/usr/local/android-sdk-linux ./gradlew dependencies,但这不是一回事)。

标签: java android continuous-integration circleci


【解决方案1】:

circleCI 论坛上有一个解决方案。 您必须添加执行权,如下所示:chmod +x gradlew 它对我有用。

这是我的 circleci.yml 的一个例子:

 machine:
  java:
    version: oraclejdk8

 dependencies:
  override:
    - chmod +x gradlew
    - ./gradlew dependencies
 test:
  override:
    - chmod +x grailsw
    - ./grailsw test-app --non-interactive
  post:
    - mkdir -p $CIRCLE_TEST_REPORTS/junit/
    - find . -type f -regex ".*/target/test-reports/.*xml" -exec cp {} $CIRCLE_TEST_REPORTS/junit/ \;

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-07-01
    • 2018-10-15
    • 1970-01-01
    • 1970-01-01
    • 2021-08-07
    • 1970-01-01
    • 2016-10-08
    相关资源
    最近更新 更多