version: 2.1 jobs: build: docker: - image: "circleci/node:12" # the primary container, where your job's commands are run steps: - checkout # check out the code in the project directory - 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 lint: docker: - image: "circleci/node:12" # the primary container, where your job's commands are run steps: - checkout # check out the code in the project directory - 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 test: docker: - image: "circleci/node:12" # the primary container, where your job's commands are run steps: - checkout # check out the code in the project directory - 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 test_e2e: docker: - image: circleci/postgres:9.6.2-alpine environment: POSTGRES_USER: pdarcas POSTGRES_DB: circleci_tp POSTGRES_PASSWORD: pdarcas - image: "circleci/node:12" # the primary container, where your job's commands are run environement: DATABASE_URL: postgres://pdarcas:pdarcas@localhost:5432/circleci_tp JWT_SECRET: answer is 42 API_PORT: 3000 API_HOST: localhost API_PROTOCOL: http steps: - checkout # check out the code in the project directory - restore_cache: key: yarn-v1-packages-{{ checksum "yarn.lock" }} - run: command: yarn test:e2e - save_cache: key: yarn-v1-packages-{{ checksum "yarn.lock" }} paths: - ./node_modules workflows: build: jobs: - build - lint: requires: - build - test: requires: - build - test_e2e: requires: - build