version: 2.1 commands: restore_cache_cmd: steps: - restore_cache: key: yarn-v3-packages-{{ checksum "yarn.lock" }} save_cache_cmd: steps: - save_cache: paths: - ./node_modules key: yarn-v3-packages-{{ checksum "yarn.lock" }} jobs: build1: docker: - image: "circleci/node:12" steps: - checkout - restore_cache_cmd - run: command: "yarn global add node-gyp && yarn install" name: "installation" - save_cache_cmd lint1: docker: - image: "circleci/node:12" steps: - checkout - restore_cache_cmd - run: command: "yarn lint && yarn format:check" name: "lint and format check" - save_cache_cmd unit1: docker: - image: "circleci/node:12" steps: - checkout - restore_cache_cmd - run: command: "yarn test:ci" name: "test unitaires" - save_cache_cmd database1: docker: - image: "circleci/node:12" - image: "circleci/postgres:9.6.2-alpine" environment: DATABASE_URL: postgres://psqluer:psqlpassword@localhost:5432/psdb JWT_SECRET: some string you want API_PORT: 3000 API_HOST: localhost API_PROTOCOL: http POSTGRES_USER: psqluer POSTGRES_PASSWORD: psqlpassword POSTGRES_DB: psdb steps: - checkout - restore_cache_cmd - run: command: "yarn test:e2e" name: "test end 2 end db postgres" - save_cache_cmd workflows: version: 2 test_workflow: jobs: - build1 - lint1: requires: - build1 - unit1: requires: - build1 - database1: requires: - build1 - lint1 - unit1