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

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

            - run: 
                name: Build
                command: yarn build

            - persist_to_workspace:
                root: ./
                paths:
                    - public
                    - 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
