android - CircleCI:在 .yml 文件中为同一存储库中的多个项目设置工作目录

标签 android github continuous-integration circleci schema.yml

Github Repository Structure

V1目录下有一个android工程。我想使用 circle.yml 文件运行 lint 检查和存储 Artifact 。我的 circle.yml 文件位于 GitHub 存储库的根目录(e.i 存储库/Android)中。我有 3 个分支用于 V1 Android 项目,即 Master、QA 和 Develop。

下面是我的 develop 分支的 yml 文件。

version: 2
jobs:
  build_develop:
    working_directory: ~/code
    docker:
      - image: circleci/android:api-25-alpha
    environment:
      JVM_OPTS: -Xmx3200m
    steps:
      - checkout:
          path: ~/V1
      - restore_cache:
          key: jars-{{ checksum "V1/build.gradle" }}-{{ checksum  "V1/app/build.gradle" }}
      - run:
          name: Download Dependencies
          command: ./V1/gradlew androidDependencies
      - save_cache:
          paths:
            - ~/.gradle
          key: jars-{{ checksum "V1/build.gradle" }}-{{ checksum  "V1/app/build.gradle" }}
      - run:
          name: Run lint
          command: |
            ./gradlew lintDebug
      - store_artifacts:
          path: app/build/reports
          destination: reports/
      - run:
          name: Run build
          command: |
            ./gradlew assembleDebug
      - store_artifacts:
          path: app/build/outputs/apk
          destination: apks/

workflows:
  version: 2

  build_app:
    jobs:
      - build_develop:
          filters:
            branches:
              only:
                - develop

它在 CircleCI 构建仪表板中给出如下错误,

Error of build

我想,我在设置 working_directory: path 和 checkout: path: 时犯了一些错误。我不知道如何为这种情况设置正确的路径。

提前致谢。

最佳答案

在这里,项目结构已经有 V1 文件夹。 checkout 时,您正在代码文件夹中再次创建 V1 文件夹以 checkout 。我们可以通过删除结帐路径来解决此问题,如下所示。

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

关于android - CircleCI:在 .yml 文件中为同一存储库中的多个项目设置工作目录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46578426/

相关文章:

javascript - 如何将 Blob 对象从 javascript 传递到 Android?

java - 如何确保函数在调用它的函数完成后运行?

node.js - 为不同的git分支创建特定的node_modules目录

java - 如何为每个部署目标指定 Jenkins 部署配置

variables - 如何在 .gitlab-ci.yml 变量中使用条件?

android - 使用 vuforia qualcomm 播放动画图像

java - Android 上的 ORMLite 在创建具有枚举类型列和默认值的表时引发异常

node.js - 是否可以在 `git clone` 上下载存储库之外的大文件?

git - 用于 Git 的 Visual Studio 2013 工具未连接到私有(private) Github 存储库

maven - 如何使用 tomcat8-maven-plugin 指定在另一个项目中构建的 WAR 以进行集成测试?