version: 2.1 workflows: workflow1: jobs: - yarn1 - lint1: requires: yarn1 - test1: requires: yarn1 - database1 jobs: yarn1: docker: - image: 'circlec1/node:12' steps: - checkout - restore_cache: key: yarn-v1-packages-{{ checksum "yarn.lock" }} - run: yarn global add node-gyp && yarn install - save_cache: key: yarn-v1-packages-{{ checksum "yarn.lock" }} paths: - ./node_modules lint1: docker: - image: 'circleci/node:12' steps: - checkout - restore_cache: key: yarn-v1-packages-{{ checksum "yarn.lock" }} - run: yarn lint && yarn format:check - save_cache: key: yarn-v1-packages-{{ checksum "yarn.lock" }} paths: - ./node_modules test1: docker: - image: 'circleci/node:12' steps: - checkout - restore_cache: key: yarn-v1-packages-{{ checksum "yarn.lock" }} - run: yarn test:ci - save_cache: key: yarn-v1-packages-{{ checksum "yarn.lock" }} paths: - ./node_modules database1: docker: - image: 'circleci/node:12' environment: DATABASE_URL: postgres://psqluer:psqlpassword@localhost:5432/psdb JWT_SECRET: some string yo want API_PORT: 3000 API_HOST: localhost API_PROTOCOL: http - image: 'circleci/postgres:9.6.2-alpine' environment: POSTGRES_USER: psqluer POSTGRES_PASSWORD: psqlpassword POSTGRES_DB: psdb steps: - checkout - restore_cache: key: yarn-v1-packages-{{ checksum "yarn.lock" }} - run: yarn test:e2e - save_cache: key: yarn-v1-packages-{{ checksum "yarn.lock" }} paths: - ./node_modules