diff --git a/.circleci/config.yml b/.circleci/config.yml index 03a1ac3..a7feb70 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -1,24 +1,74 @@ version: 2.1 jobs: - install: &shared-config - docker: - - image: cimg/node:14.10.1 # the primary container, where your job's commands are run + build: + docker: &shared-docker + - image: cimg/node:12.18.4 # the primary container, where your job's commands are run auth: username: mydockerhub-user - password: $DOCKERHUB_PASSWORD # context / project UI env-var reference + password: $DOCKERHUB_PASSWORD # context / project UI env-var reference steps: - checkout # check out the code in the project directory - - run: yarn global add node-gyp && yarn install - - restore_cache: - keys: + - restore_cache : + keys : - npm-v1-dependencies-{{ checksum "yarn.lock" }} - - run: yarn lint - - run: yarn test:ci + - run: yarn global add node-gyp && yarn install + - save_cache: + paths: + - ./node_modules + key: npm-v1-dependencies-{{ checksum "yarn.lock" }} + + lint: - <<: *shared-config - steps: + 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: - <<: *shared-config + + ci-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 + + + postgres-test: + docker: + - image: cimg/node:12.18.4 + environment: + DATABASE_URL: postgres://psqluser:password@localhost:5432/psdb + JWT_SECRET: some string + API_HOST: localhost + API_PROTOCOL: http + API_PORT: 3000 + - image: circleci/postgres:9.6.2-alpine + environment: + POSTGRES_USER: psqluser + POSTGRES_DB: psdb + POSTGRES_PASSWORD: password steps: - - run: yarn test:ci \ No newline at end of file + - checkout # check out the code in the project directory + - restore_cache: + keys: + - npm-v1-dependencies-{{ checksum "yarn.lock" }} + - run: yarn test:e2e + +workflows: + version: 2 + build_test: + jobs : + - build + - lint: + requires: + - build + - ci-test: + requires: + - build + - postgres-test: + requires: + - build diff --git a/package.json b/package.json index a4f54c1..96ef36c 100644 --- a/package.json +++ b/package.json @@ -20,8 +20,8 @@ "test:cov": "jest --coverage", "test:debug": "node --inspect-brk -r tsconfig-paths/register -r ts-node/register node_modules/.bin/jest --runInBand", "test:e2e": "jest --config ./test/jest-e2e.json", - "format": "prettier --write \"src/**/*.ts\" \"test/**/*.ts\" \"./**/*.{yaml,yml}\"", - "format:check": "prettier --list-different \"src/**/*.ts\" \"test/**/*.ts\" \"./**/*.{yaml,yml}\"", + "format": "prettier --write \"src/**/*.ts\" \"test/**/*.ts\"", + "format:check": "prettier --list-different \"src/**/*.ts\" \"test/**/*.ts\"", "generate": "hygen" }, "dependencies": {