diff --git a/circleci/config.yml b/circleci/config.yml new file mode 100644 index 0000000..7e9011b --- /dev/null +++ b/circleci/config.yml @@ -0,0 +1,89 @@ +version: 2.1 +workflows: + build_and_test: + jobs: + - build + - lint: + requires: + - build + - tests: + requires: + - build + - e2e: + requires: + - build + - doc: + requires: + - build +jobs: + build: + docker: + - image: "circleci/node:12" + steps: + - checkout + - restore_cache: + key: yarn-cache{{ checksum "yarn.lock" }} + - run: yarn global add node-gyp && yarn install + - save_cache: + key: yarn-cache{{ checksum "yarn.lock" }} + paths: + - ./node_modules + tests: + docker: + - image: "circleci/node:12" + steps: + - checkout + - restore_cache: + key: yarn-cache{{ checksum "yarn.lock" }} + - run: yarn test:ci + - save_cache: + key: yarn-cache{{ checksum "yarn.lock" }} + paths: + - ./node_modules + lint: + docker: + - image: "circleci/node:12" + steps: + - checkout + - restore_cache: + key: yarn-cache{{ checksum "yarn.lock" }} + - run: yarn lint && yarn format:check + - save_cache: + key: yarn-cache{{ checksum "yarn.lock" }} + paths: + - ./node_modules + e2e: + docker: + - image: "circleci/node:12" + - image: "circleci/postgres:9.6.2-alpine" + environment: + POSTGRES_USER: lamya-ray + POSTGRES_DB: testci + POSTGRES_PASSWORD: testci1 + steps: + - checkout + - restore_cache: + key: yarn-cache{{ checksum "yarn.lock" }} + - run: + command: yarn test:e2e + environment: + DATABASE_URL: postgres://lamya-ray:testci1@localhost:5432/testci + JWT_SECRET: m1iii + API_PORT: 3000 + API_HOST: localhost + API_PROTOCOL: http + - save_cache: + key: yarn-cache{{ checksum "yarn.lock" }} + paths: + - ./node_modules + doc: + docker: + - image: "circleci/node:12" + steps: + - checkout + - restore_cache: + key: yarn-cache{{ checksum "yarn.lock" }} + - run: + command: yarn doc:build + - store_artifacts: + path: ./doc-server