version: 2
jobs:
  build:
    working_directory: ~/outline
    docker:
      - image: circleci/node:14
      - image: circleci/redis:latest
      - image: circleci/postgres:9.6.5-alpine-ram
    environment:
      NODE_ENV: test
      SECRET_KEY: F0E5AD933D7F6FD8F4DBB3E038C501C052DC0593C686D21ACB30AE205D2F634B
      DATABASE_URL_TEST: postgres://root@localhost:5432/circle_test
      DATABASE_URL: postgres://root@localhost:5432/circle_test
      URL: http://localhost:3000
      SMTP_FROM_EMAIL: hello@example.com
      AWS_S3_UPLOAD_BUCKET_URL: https://s3.amazonaws.com
      AWS_S3_UPLOAD_BUCKET_NAME: outline-circle
    steps:
      - checkout
      - restore_cache:
          key: dependency-cache-{{ checksum "package.json" }}
      - run:
          name: install-deps
          command: yarn install --pure-lockfile
      - save_cache:
          key: dependency-cache-{{ checksum "package.json" }}
          paths:
            - ./node_modules
      - run:
          name: migrate
          command: ./node_modules/.bin/sequelize db:migrate --url $DATABASE_URL_TEST
      - run:
          name: lint
          command: yarn lint
      - run:
          name: flow
          command: yarn flow check --max-workers 4
      - run:
          name: test
          command: yarn test
      - run:
          name: build-webpack
          command: yarn build:webpack