【问题标题】:Travis CI cant find our gradlew fileTravis CI 找不到我们的 gradle 文件
【发布时间】:2021-10-27 14:49:00
【问题描述】:

我们正在尝试将我们的 android 应用与 travis CI 集成。但它总是以cannot access ‘gradlew’: No such file or directory 失败。我们可以在本地计算机上运行 gradlew 脚本,该文件由 git 跟踪。可能是什么问题?

我们的.travis.yml 文件:

sudo: false
language: android
jdk: oraclejdk8

before_cache:
  - rm -f $HOME/.gradle/caches/modules-2/modules-2.lock
  - rm -fr $HOME/.gradle/caches/*/plugin-resolution/

cache:
  directories:
  - $HOME/.gradle/caches/
  - $HOME/.gradle/wrapper/
  - $HOME/.android/build-cache


before_script: 
  - cd TreasurePleasure
  - echo no | android create avd --force -n test -t "android-"$ANDROID_EMULATOR_LEVEL --abi $ANDROID_ABI --tag $ANDROID_TAG
  - emulator -avd test -no-window &
  - android-wait-for-emulator
  - adb shell input keyevent 82 &

android:
  components:
    - tools
    - tools # Running this twice get's the latest build tools (https://github.com/codepath/android_guides/wiki/Setting-up-Travis-CI)
    - platform-tools
    - build-tools-27.0.3
    - android-27
    - android-$ANDROID_EMULATOR_LEVEL
    - sys-img-armeabi-v7a-google_apis-$ANDROID_EMULATOR_LEVEL
  licenses:
    - '.+'

env:
  global:
    - ANDROID_API_LEVEL=27
    - ANDROID_EMULATOR_LEVEL=21
    - ANDROID_BUILD_TOOLS_VERSION=27.0.3
    - ANDROID_ABI=armeabi-v7a
    - ANDROID_TAG=google_apis
    - ADB_INSTALL_TIMEOUT=20

before_install:
  - chmod +x gradlew
  - yes | sdkmanager "platforms;android-27"


script:
  - "./gradlew clean build connectedCheck -PdisablePreDex --stacktrace"
  # run tests  against the emulator
  - ./gradlew connectedAndroidTest
  # run tests  against the JVM
  - ./gradlew test

其中大部分是复制粘贴,因为这是我们第一个使用 Travis CI 的项目。

我们的错误:

【问题讨论】:

  • 问题是在执行 chmod 命令的位置不存在 gradlew 文件。您可以记录路径并查看其中的内容吗?
  • @Vall0n 是的,我知道。你想让我在脚本中记录路径吗?我怎样才能做到这一点?你可以在我的before_script: 看到我做了一个` - cd TreasurePleasure` 那是因为那是git repo中包含gradlew文件的文件夹。
  • 但是看起来远程机器上的文件丢失了。一切都是从本地机器推送的吗?也许回购不是最新的。查看远程机器上的路径并确保 gradlew 文件在那里。
  • @Vall0n 是的,gradlew 脚​​本位于存储库中,路径是 TreasurePleasure/gradlew(我直接在 github 中查找)
  • 也许你可以使用gradlew文件的绝对路径

标签: android travis-ci gradlew


【解决方案1】:

这就是它在我的脚本中的工作方式:

before_script:
- cd ${TRAVIS_BUILD_DIR}/TreasurePleasure
- chmod +x ./gradlew

script: "./gradlew assemble"

【讨论】:

    猜你喜欢
    • 2014-06-17
    • 1970-01-01
    • 2019-12-28
    • 2013-05-16
    • 1970-01-01
    • 1970-01-01
    • 2019-03-28
    • 2019-10-29
    • 2014-04-21
    相关资源
    最近更新 更多