version: 2.1 jobs: Installation: docker: - image: circleci/node:14.10.1 steps: - checkout - restore_cache: keys: - yarn-packages-{{ checksum "yarn.lock" }}-{{ .Environment.CACHE_VERSION }} - yarn-packages - run: yarn global add node-gyp && yarn install - save_cache: key: yarn-packages-{{ checksum "yarn.lock" }}-{{ .Environment.CACHE_VERSION }} paths: - ./node_modules Test: docker: - image: circleci/node:14.10.1 steps: - checkout - restore_cache: keys: - yarn-packages-{{ checksum "yarn.lock" }}-{{ .Environment.CACHE_VERSION }} - run: name: Format write command: yarn format:write - run: name: Format check command: yarn format:check --write - run: name: Test command: yarn test - save_cache: key: yarn-packages-{{checksum "yarn.lock"}} paths: - ./node_module Build: docker: - image: circleci/node:14.10.1 steps: - checkout - restore_cache: keys: - yarn-packages-{{ checksum "yarn.lock" }}-{{ .Environment.CACHE_VERSION }} - run: name: Build Prod command : yarn build Netlify: docker: - image: circleci/node:14.10.1 working_directory: ~/deploy-netlify steps: - run: name: Deploy command: | sudo npm install -g --unsafe-perm=true netlify-cli netlify deploy --prod --auth $NETLIFY_AUTH_TOKEN --site $NETLIFY_SITE_ID workflows: Build_Test_Deploy: jobs: - Installation - Test: requires: - Installation - Build: requires: - Installation - Netlify: requires: - Build