version: 2.1 jobs: yarninstall: docker: - image: cimg/node:lts auth: username: henriboulnois password: $DOCKERHUB_PASSWORD steps: - checkout - restore_cache: keys: - npm-v2-dependencies-{{ checksum "yarn.lock" }} - npm-v2-dependencies - run: yarn install - save_cache: paths: - node_modules key: npm-v2-dependencies-{{ checksum "yarn.lock" }} yarnlint: docker: - image: cimg/node:lts auth: username: henriboulnois password: $DOCKERHUB_PASSWORD steps: - checkout - restore_cache: keys: - npm-v2-dependencies-{{ checksum "yarn.lock" }} - npm-v2-dependencies - run: yarn lint - run: yarn format:check - save_cache: paths: - node_modules key: npm-v2-dependencies-{{ checksum "yarn.lock" }} unittest: docker: - image: cimg/node:lts auth: username: henriboulnois password: $DOCKERHUB_PASSWORD steps: - checkout - restore_cache: keys: - npm-v2-dependencies-{{ checksum "yarn.lock" }} - npm-v2-dependencies - run: yarn test - save_cache: paths: - node_modules key: npm-v2-dependencies-{{ checksum "yarn.lock" }} e2etest: docker: - image: cimg/node:lts auth: username: henriboulnois password: $DOCKERHUB_PASSWORD - image: circleci/postgres:9.6.5-alpine-ram auth: username: mydockerhub-user password: $DOCKERHUB_PASSWORD environment: TEST_DATABASE_URL: postgres://psqluer:psqlpassword@localhost:5432/psdb steps: - checkout - restore_cache: keys: - npm-v2-dependencies-{{ checksum "yarn.lock" }} - npm-v2-dependencies - run: yarn test:e2e - save_cache: paths: - node_modules key: npm-v2-dependencies-{{ checksum "yarn.lock" }} workflows: build: jobs: - yarninstall - yarnlint: requires: - yarninstall - unittest: requires: - yarninstall - yarnlint - e2etest: requires: - yarninstall - yarnlint - unittest