0

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

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

我按照以下文章中的步骤概述。我知道显而易见的答案是该文件实际上不存在,但是应该用什么替换“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
4

2 回答 2

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" }}

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

于 2018-04-18T14:53:38.030 回答
0

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

command: sudo chmod +x gradlew ./gradlew androidDependencies

至:

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

“|” 字符是启用多行命令,如参考文档中所述

于 2018-01-13T22:03:33.580 回答