CircleCI 2.0 Workflow - развертывание не работает - PullRequest
0 голосов
/ 11 июня 2018

Я пытаюсь настроить рабочий процесс в CircleCI для моего проекта React.Чего я хочу добиться, так это получить задание для сборки материала и еще одно для развертывания главной ветви на хостинге Firebase.

Это то, что у меня есть после нескольких конфигураций:

witmy: &witmy
  docker:
    - image: circleci/node:7.10

version: 2
jobs:
  build:
    <<: *witmy
    steps:
      - checkout
      - restore_cache:
          keys:
          - v1-dependencies-{{ checksum "package.json" }}
          - v1-dependencies-

      - run: yarn install

      - save_cache:
          paths:
            - node_modules
          key: v1-dependencies-{{ checksum "package.json" }}

      - run:
          name: Build app in production mode
          command: |
            yarn build

      - persist_to_workspace:
          root: .
  deploy:
    <<: *witmy
    steps:
      - attach_workspace:
          at: .

      - run:
          name: Deploy Master to Firebase
          command: ./node_modules/.bin/firebase deploy --token=MY_TOKEN

workflows:
  version: 2
  build-and-deploy:
    jobs:
      - build
      - deploy:
          requires:
            - build
          filters:
            branches:
              only: master

Работа по сборке всегда успешна, но с deploy У меня есть эта ошибка:

#!/bin/bash -eo pipefail 
./node_modules/.bin/firebase deploy --token=MYTOKEN 

/bin/bash: ./node_modules/.bin/firebase: No such file or directory 
Exited with code 1

Итак, я понимаю, чточто задание развертывания не выполняется в том же месте, где была сборка, верно?

Я не уверен, как это исправить.Я прочитал несколько примеров, которые они предоставляют, и попробовал несколько вещей, но это не работает.Я также прочитал документацию, но я думаю, что не очень понятно, как все настроить ... может быть, я слишком тупой.

Надеюсь, вы, ребята, можете помочь мне в этом.

Cheers !!

ИЗМЕНЕНО, ЧТОБЫ ДОБАВИТЬ МОЙ ТЕКУЩИЙ КОНФИГ, ИСПОЛЬЗУЯ РАБОЧИЕ МЕСТА

Я добавил рабочие области ... но все же я не могу заставить его работать, после повторной попытки попыток я получаю эту ошибку:

Persisting to Workspace 
The specified paths did not match any files in /home/circleci/project

А также очень сложно фиксировать и отправлять в CircleCI каждое изменение в файле конфигурации, когда я хочу его протестировать ...: /

Спасибо!

1 Ответ

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

отказ от ответственности: я являюсь адвокатом разработчика CircleCI

Каждое задание является собственным запущенным Docker-контейнером (или ВМ).Таким образом, проблема в том, что в вашем задании на развертывание нет ничего в node_modules.Есть 2 способа решить эту проблему:

  1. Установить Firebase и все, что вам может понадобиться, на лету, точно так же, как вы делаете это в работе по сборке.
  2. Использование Рабочих пространств CircleCI для переноса вашего каталога node_modules из задания сборки в задание развертывания.

По моему мнению, вариант 2, вероятно, будет лучшим выбором, поскольку он более эффективен.

...