version: 2.1 workflows: build_and_lint: jobs: - build - lint: requires: - build - database - test: requires: - build jobs: build: docker: - image: "circleci/node:12" steps: - checkout - restore_cache: key: yarn-packagesV3-{{ checksum "yarn.lock" }} - run: yarn global add node-gyp && yarn install - save_cache: key: yarn-packagesV3-{{ checksum "yarn.lock" }} paths: - ./node_modules lint: docker: - image: "circleci/node:12" steps: - checkout - restore_cache: key: yarn-packagesV3-{{ checksum "yarn.lock" }} - run: yarn lint && yarn format:check test: docker: - image: "circleci/node:12" steps: - checkout - restore_cache: key: yarn-packagesV3-{{ checksum "yarn.lock" }} - run: yarn test:ci database: docker: - image: "circleci/node:12" environment: DATABASE_URL: postgres://psqluer:psqlpassword@localhost:5432/psdb JWT_SECRET: passedb API_PORT: 3000 API_HOST: localhost API_PROTOCOL: http - image: "circleci/postgres:9.6.2-alpine" environment: POSTGRES_USER: psqluer POSTGRES_PASSWORD: psqlpassword steps: - checkout - restore_cache: key: yarn-packagesV3-{{ checksum "yarn.lock" }} - run: yarn yarn test:e2e