|
|
|
@ -0,0 +1,64 @@ |
|
|
|
globals: |
|
|
|
images: |
|
|
|
node: &node cimg/node:lts |
|
|
|
postgres: &postgres circleci/postgres:9.6.5 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
version: 2 |
|
|
|
jobs: |
|
|
|
build: &shared-config |
|
|
|
docker: |
|
|
|
- image: *node |
|
|
|
working_directory: ~/app |
|
|
|
steps: |
|
|
|
- checkout |
|
|
|
- restore_cache: |
|
|
|
keys: |
|
|
|
- dependencies-{{ checksum "package.json" }} |
|
|
|
# fallback to using the latest cache if no exact match is found |
|
|
|
- dependencies- |
|
|
|
- run: yarn install |
|
|
|
- save_cache: |
|
|
|
paths: |
|
|
|
- node_modules |
|
|
|
key: dependencies-{{ checksum "package.json" }} |
|
|
|
test: |
|
|
|
<<: *shared-config |
|
|
|
steps: |
|
|
|
- checkout |
|
|
|
- restore_cache: |
|
|
|
key: dependencies-{{ checksum "package.json" }} |
|
|
|
- run: yarn test |
|
|
|
|
|
|
|
test-e2e: |
|
|
|
docker: |
|
|
|
- image: *node |
|
|
|
- image: *postgres |
|
|
|
environment: |
|
|
|
POSTGRES_DB: postgres |
|
|
|
POSTGRES_USER: postgres |
|
|
|
POSTGRES_PASSWORD: postgres |
|
|
|
steps: |
|
|
|
- checkout |
|
|
|
- restore_cache: |
|
|
|
keys: |
|
|
|
- dependencies-{{ checksum "package.json" }} |
|
|
|
- run: |
|
|
|
command: yarn test:e2e |
|
|
|
environment: |
|
|
|
DATABASE_URL: postgres://postgres:postgres@localhost:5432/postgres |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
workflows: |
|
|
|
version: 2 |
|
|
|
build-test-and-lint: |
|
|
|
jobs: |
|
|
|
- build |
|
|
|
- test: |
|
|
|
requires: |
|
|
|
- build |
|
|
|
- test-e2e: |
|
|
|
requires: |
|
|
|
- build |