我正在尝试在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
构建作业总是成功,但使用部署时出现此错误:
#!/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
所以,我的理解是部署作业没有在构建的同一个地方运行,对吗?
我不确定如何解决这个问题。我已经阅读了他们提供的一些例子并尝试了几件事,但它并没有奏效。我也阅读了文档,但我认为如何配置所有内容并不是很清楚...也许我太笨了。
我希望你们能帮助我解决这个问题。
干杯!!
已编辑使用工作区添加当前配置
我已经添加了工作区...但是仍然无法让它工作,经过一系列的尝试我得到了这个错误:
Persisting to Workspace
The specified paths did not match any files in /home/circleci/project
当我想测试它时,提交并推送到CircleCI的每一次配置文件更改真的很痛苦......:/
谢谢!
答案 0 :(得分:0)
免责声明:我是CircleCI开发者倡导者
每个作业都是自己运行的Docker容器(或VM)。所以这里的问题是你的部署工作中node_modules
中没有任何内容。有两种方法可以解决这个问题:
node_modules
目录从构建作业转移到部署作业。在我看来,选项2可能是你最好的选择,因为它更有效率。