version: 2 jobs: build: docker: - image: circleci/node:10.4-browsers working_directory: ~/repo steps: - checkout - restore_cache: keys: - v1-dependencies-{{ checksum "package.json" }} - v1-dependencies- - run: name: Install Dependancies command: | yarn cd functions && yarn - save_cache: key: v1-dependencies-{{ checksum "package.json" }} paths: - node_modules - functions/node_modules - run: name: Build command: yarn build - persist_to_workspace: root: ./ paths: - public - node_modules - functions/node_modules - store_artifacts: path: public deploy: docker: - image: circleci/node:10.4-browsers working_directory: ~/repo steps: - checkout - attach_workspace: at: ./ - run: name: Deploy command: yarn firebase deploy --token "${FIREBASE_TOKEN}" workflows: version: 2 build_and_deply: jobs: - build - deploy: requires: - build