У меня есть репо, содержащее два подпроекта .Просто для полноты проекта внешнего интерфейса и проекта облачной функции Firebase (оба используют отдельный package.jsons).Теперь для этого проекта я хочу начать две работы одновременно.Но я не могу выполнить настройку с CircleCI.У меня нет никакой конфигурации кеша.
структура проекта
-creepy-stories
-.circleci
-cloud-functions
-functions
package.json
-frontend
package.json
config.yml
version: 2.1
jobs:
cloud-functions:
docker:
- image: circleci/node:10.8.0
working_directory: ~/creepy-stories/cloud-functions/functions
steps:
- checkout
- run: npm install
- run: npm run lint
- run: npm run build
frontend:
docker:
- image: circleci/node:10.8.0
working_directory: ~/creepy-stories/frontend
steps:
- checkout
- run: npm install
- run: npm run lint
- run: npm run build
- run: npm run test:coverage
workflows:
version: 2
cloud-functions_and_frontend:
jobs:
- cloud-functions
- frontend
Так что теперь моя, я думаю, моя проблема заключается в том, что среда не можетнайдите мой файл package.json.Выводимая ошибка выглядит следующим образом:
npm run lint
#!/bin/bash -eo pipefail
npm run lint
npm ERR! path /home/circleci/creepy-stories/frontend/package.json
npm ERR! code ENOENT
npm ERR! errno -2
npm ERR! syscall open
npm ERR! enoent ENOENT: no such file or directory, open '/home/circleci/creepy-stories/frontend/package.json'
npm ERR! enoent This is related to npm not being able to find a file.
npm ERR! enoent
npm ERR! A complete log of this run can be found in:
npm ERR! /home/circleci/.npm/_logs/2019-04-20T13_08_45_252Z-debug.log
Exited with code 254
Я не знаю, правильно ли дважды устанавливать рабочий каталог в моей конфигурации, но он находится наНаименьший набор в два дифференциала.jobs.
Обновление
Мне удалось заставить его работать, если я извлекаю корень проекта, а затем cd
в нужную папку и выполняю сценарии.Но на самом деле это не СУХОЙ (не повторяйтесь), может быть, у некоторых из вас есть лучшее решение:
version: 2.1
jobs:
cloud-functions:
docker:
- image: circleci/node:10.8.0
working_directory: ~/creepy-stories
steps:
- checkout
- run: cd cloud-functions/functions && npm install
- run: cd cloud-functions/functions && npm run lint
- run: cd cloud-functions/functions && npm run build
web:
docker:
- image: circleci/node:10.8.0
working_directory: ~/creepy-stories
steps:
- checkout
- run: cd web && npm install
- run: cd web && npm run lint
- run: cd web && npm run build
- run: cd web && npm run test:coverage
workflows:
version: 2
concurrently:
jobs:
- cloud-functions
- web