Ни одна версия Cypress не установлена ​​в Ci (TravisCI и CircleCI) - PullRequest
0 голосов
/ 05 июня 2018

Я получаю эту ошибку в CI при обновлении до Cypress 3.0, говоря, что Cypress не установлен, но я запускаю npm install перед моей командой cypress run.Ошибка:

No version of Cypress is installed in: 

/home/ubuntu/.cache/Cypress/3.0.1/Cypress

Please reinstall Cypress by running: cypress install
----------

Почему Cypress не находит исполняемый файл Cypress?

Вот мой circle.yml:

build:
    <<: *defaults
    steps:
      - checkout
      - restore_cache:
          keys:
            - v1-npm-deps
      - run: npm install
      - save_cache:
          key: v1-npm-deps-{{ checksum "package.json" }}
          paths:
            - node_modules
            - ~/.cache
            - ~/.npm
      - run: npm test
      - run: npm run build
      - persist_to_workspace:
          root: /tmp/workspace
          paths:
            - .circleci/deploy.sh
            - .circleci/e2e-test.sh
            - package.json
            - cypress.json
            - node_modules/
            - build/*
            - cypress/*

1 Ответ

0 голосов
/ 06 июня 2018

Это небольшая проблема с кэшированием node_modules - пост-установочный скрипт, который устанавливает бинарный файл Cypress, не будет запускаться, так как существует node_modules/cypress.

Чтобы это исправить, вы можете очистить кеш сборки CI , и все должно быть решено.Вот почему я рекомендую использовать npm ci, поскольку node_modules будет стираться при каждом запуске команды

Также: - в Circle CI 2.0, кэшированиеработает иначе, чем в 1.0 или TravisCI, потому что кеш неизменен .Вы можете только создать другой кеш, никогда не разрушать и не переписывать его.Итак, вы должны сделать кеширование следующим образом:

- restore_cache:
  keys:
    - v1-deps-{ .Branch }-{ checksum "package.json" }
    - v1-deps-{ .Branch }
    - v1-deps
- run:
  - npm ci
- save_cache:
  key: v1-deps-{ .Branch }-{ checksum "package.json" }
  paths:
    - ~/.cache
    - ~/.npm
...