version: 2.1 jobs: build: docker: - image: cimg/node:14.10.1 steps: - checkout - restore_cache: name: restore yarn package cache key: yarn-packages-v2{{ checksum "yarn.lock" }} - run: yarn global add node-gyp && yarn install - save_cache: name: save yarn package cache key: yarn-packages-v2{{ checksum "yarn.lock" }} paths: - ./node_modules lint: docker: - image: cimg/node:14.10.1 steps: - checkout - restore_cache: name: restore yarn package cache key: yarn-packages-v2{{ checksum "yarn.lock" }} - run: yarn lint && yarn format:check - save_cache: name: save yarn package cache key: yarn-packages-v2{{ checksum "yarn.lock" }} paths: - ./node_modules unit-test: docker: - image: cimg/node:14.10.1 steps: - checkout - restore_cache: name: restore yarn package cache key: yarn-packages-v2{{ checksum "yarn.lock" }} - run: yarn test:ci - save_cache: name: save yarn package cache key: yarn-packages-v2{{ checksum "yarn.lock" }} paths: - ./node_modules test_e2e: docker: - image: postgres:9.6-jessie environment: POSTGRES_USER: psqluser POSTGRES_DB: psdb steps: - run: command: yarn test:e2e environment: DATABASE_URL: postgres://psqluser@localhost:5432/psdb API_PORT: 3000 API_HOST: localhost API_PROTOCOL: http workflows: build_and_test: jobs: - build - lint: requires: - build - unit-test: requires: - build - database: requires: - build