version: 2.1 jobs: build: docker: &shared_docker - image: cimg/node:14.10.1 # the primary container, where your job's commands are run steps: - checkout # check out the code in the project directory - save_cache: keys: - npm-v1-dependencies-{{ checksum "yarn.lock" }} paths: ./node_modules/ - 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 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 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