CircleCI 2.0 for Android:无法安装依赖项

时间:2018-01-13 20:06:21

标签: android continuous-integration circleci-2.0

我无法获得第一个为我的CircleCI 2.0 android项目成功完成的构建。起初我得到gradlew的“许可被拒绝”,这是通过附加“sudo chmod + x gradlew”来修复的。这导致了我当前的错误:

chmod: cannot access 'androidDependencies': No such file or directory
Exited with code 1

我按照以下article中的步骤大纲进行操作。我知道明显的答案是该文件实际上不存在,但应该用“androidDependencies”代替什么?这是我第一次与CircleCI合作,我第一次使用任何CI软件,所以如果这是一个简单的解决方案,我道歉!谢谢你的帮助。

这是我的circle.yml文件:

version: 2
jobs:
  build:
    working_directory: ~/code
    docker:
      - image: circleci/android:api-25-alpha
    environment:
      JVM_OPTS: -Xmx3200m
    steps:
      - checkout
      - restore_cache:
          key: jars-{{ checksum "build.gradle" }}-{{ checksum "app/build.gradle" }}
      - run:
          name: Download Dependencies
          command: sudo chmod +x gradlew ./gradlew androidDependencies
      - save_cache:
          paths:
            - ~/.gradle
          key: jars-{{ checksum "build.gradle" }}-{{ checksum  "app/build.gradle" }}
      - run:
          name: Run Tests
          command: ./gradlew lint test
      - store_artifacts:
          path: app/build/reports
          destination: reports
      - store_test_results:
          path: app/build/test-results

2 个答案:

答案 0 :(得分:0)

我终于解决了这个问题!我只是从我的config.yml文件中替换了以下行:

command: sudo chmod +x gradlew ./gradlew androidDependencies

为:

command: |
        sudo chmod +x gradlew 
        ./gradlew androidDependencies

" |" character用于启用多行命令,如参考文档here中所示。

答案 1 :(得分:0)

您的回答是正确的,要启用多行命令,只需添加|但在你的代码中,你有另一行有问题

- restore_cache:
      key: jars-{{ checksum "build.gradle" }}-{{ checksum "app/build.gradle" }}

恢复缓存时,不指定与save_cache步骤相同的路径。我建议你添加这样的行路径

- restore_cache:
      paths:
        - ~/.gradle
      key: jars-{{ checksum "build.gradle" }}-{{ checksum  "app/build.gradle" }}

这样您就可以正确恢复缓存