version: 2.1 jobs: build: docker: &shared_docker - image: cimg/node:14.10.1 # the primary container, where your job's commands are run auth: username: mydockerhub-user password: $DOCKERHUB_PASSWORD # context / project UI env-var reference steps: - checkout # check out the code in the project directory - restore_cache: keys: - npm-v1-dependencies-{{ checksum "yarn.lock" }} - run: yarn global add node-gyp && yarn install lint: docker: *shared_docker steps: - checkout # check out the code in the project directory - restore_cache: keys: - npm-v1-dependencies-{{ checksum "yarn.lock" }} - run: yarn global add node-gyp && yarn install && yarn lint && yarn format:check test: docker: *shared_docker steps: - checkout # check out the code in the project directory - restore_cache: keys: - npm-v1-dependencies-{{ checksum "yarn.lock" }} - run: yarn global add node-gyp && yarn install && yarn test:ci e2e_test: docker: - image: 'circleci/postgres:9.6.2-alpine' - image: 'circleci/node:12' steps: - checkout - run: command: yarn test:e2e environment: DATABASE_URL: postgres://antoine_mortelier:pass@localhost:5432/testpsdb JWT_SECRET: whatamidoinghere API_PORT: 3000 API_HOST: localhost API_PROTOCOL: http - save_cache: key: yarn-cache{{ checksum "yarn.lock" }} paths: - ./node_modules workflows: version: 2 build_test: jobs: - build - lint - test - e2e_test