CircleCI ./gradlew: 权限被拒绝

CircleCI ./gradlew: Permission denied

我有一个 Github 存储库,它建立在 CircleCI 之上。我收到以下错误:

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 文件中提供了必要的权限。

test:
  override:
    - echo y | android update sdk --no-ui --all --filter tools,platform-tools,build-tools-21.1.2,android-21,extra-google-m2repository,extra-google-google_play_services,extra-android-support
    - chmod 777 gradlew
    - chmod a+x gradlew
    - ANDROID_HOME=/usr/local/android-sdk-linux ./gradlew dependencies
    - ./gradlew testVanillaDebugUnitTest -PdisablePreDex
    - echo "y" | sudo /opt/google-cloud-sdk/bin/gcloud beta test android run --app app/build/outputs/apk/app-vanilla-debug.apk --test app/build/outputs/apk/app-vanilla-debug-androidTest.apk --device-ids Nexus5 --os-version-ids 22 --locales en --orientations portrait

看着你 circle.yml(发现 here),失败不是来自第 25 行或第 26 行,而是第 14 行。

请注意执行顺序是

  1. dependencies:pre
  2. 依赖关系:post
  3. 测试:覆盖
  4. 测试:post

所以你需要做的是删除第 23、24 行并添加 chmod +x gradlew 作为 dependencies:pre

中的第一个命令
  • 运行: chmod +x gradlew
  • 运行: ./gradlew assemble

所以,首先设置权限,然后运行你想要的命令