首页 > 解决方案 > 未找到循环 CI 工作流取消归档缓存

问题描述

我为 Circle CI 创建了配置:

version: 2
jobs:
  dependencies:
    docker:
      - image: circleci/node:10
    steps:
      - checkout
      - restore_cache:
          keys:
            - v2-dependencies-{{ checksum "package.json" }}
            - v2-dependencies-
      - run: yarn install
      - save_cache:
          paths:
            - node_modules
            - /root/.cache/Cypress
          key: v2-dependencies-{{ checksum "package.json" }}
  test:
    docker:
      - image: cypress/base:10
    steps:
      - checkout
      - restore_cache:
          keys:
            - v2-dependencies-{{ checksum "package.json" }}
            - v2-dependencies-
      - run: ls -la
      - run: yarn cy:cache
      - run: yarn cy:ci
      - run: yarn report:coverage

workflows:
  version: 2
  build:
    jobs:
      - dependencies
      - test:
          requires:
          - dependencies

我的期望:它应该首先安装所有依赖项并将其缓存以在未来的工作中使用这些依赖项(例如用于测试)

会发生什么:它安装所有依赖项并将其缓存,但在测试作业中它取消归档缓存但不在测试运行的同一目录中。

ls -la的输出:

在此处输入图像描述

cypress 命令的输出: 在此处输入图像描述

我做错了什么。如何正确使用以前工作的缓存?

标签: githubcontinuous-integrationcirclecicircleci-2.0

解决方案


您应该使用相同的图像来使用缓存,因为每个图像使用不同的目录。在此示例中,您尝试从错误的目录中获取缓存。

version: 2
jobs:
  dependencies:
    docker:
      - image: cypress/base:10
    steps:
      - checkout
      - restore_cache:
          keys:
            - dependencies-{{ checksum "yarn.lock" }}
            - dependencies-
      - run: yarn install
      - save_cache:
          paths:
            - node_modules
            - /root/.cache/Cypress
          key: dependencies-{{ checksum "yarn.lock" }}
  test:
    docker:
      - image: cypress/base:10
    steps:
      - checkout
      - restore_cache:
          keys:
            - dependencies-{{ checksum "yarn.lock" }}
            - dependencies-
      - run: yarn cy:cache
      - run: yarn cy:ci
      - run: yarn report:coverage

workflows:
  version: 2
  build:
    jobs:
      - dependencies
      - test:
          requires:
          - dependencies

推荐阅读