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: - dist/ZaksCode - store_artifacts: path: ./dist/ZaksCode deploy: docker: - image: google/cloud-sdk:latest working_directory: ~/repo steps: - checkout - attach_workspace: at: ./ - run: name: Deploy command: gsutil cp -r dist/ZaksCode/* gs://staging.zaks-code.appspot.com deploy-prod: docker: - image: google/cloud-sdk:latest working_directory: ~/repo steps: - checkout - attach_workspace: at: ./ - run: name: Depoly command: gsutil cp -r dist/ZaksCode/* gs://zaks-code.appspot.com workflows: version: 2 build_and_deply: jobs: - build - deploy: requires: - build filters: branches: only: master - deploy-prod: requires: - build filters: branches: only: production