Yield generated for e847f511-c4a8-41d9-b55e-10620e4d97cb
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 

101 lines
3.1 KiB

version: 2.1
workflows:
build_and_test:
jobs:
- build
- lint:
requires:
- build
- tests:
requires:
- build
- db:
requires:
- build
- dockerhub:
requires:
- build
- lint
- tests
jobs:
build:
docker:
- image: cimg/node:12.18
steps:
- checkout
- restore_cache:
key: yarn-packages-v3{{ checksum "yarn.lock" }}
- run: yarn global add node-gyp && yarn install
- save_cache:
key: yarn-packages-v3{{ checksum "yarn.lock" }}
paths:
- ./node_modules
tests:
docker:
- image: cimg/node:12.18
steps:
- checkout
- restore_cache:
key: yarn-packages-v3{{ checksum "yarn.lock" }}
- run : yarn test:ci
- save_cache:
key: yarn-packages-v3{{ checksum "yarn.lock" }}
paths:
- ./node_modules
lint:
docker:
- image: cimg/node:12.18
steps:
- checkout
- restore_cache:
key: yarn-packages-v3{{ checksum "yarn.lock" }}
- run : yarn lint && yarn format:check
- save_cache:
key: yarn-packages-v3{{ checksum "yarn.lock" }}
paths:
- ./node_modules
db:
docker:
- image: cimg/node:12.18
environment:
DATABASE_URL: "postgres://psqluer:test@localhost:5432/psdb"
API_PORT: 3000
API_HOST: localhost
API_PROTOCOL: http
JWT_SECRET: some string yo want
- image: circleci/postgres:9.6.2-alpine
environment:
POSTGRES_USER: psqluer
POSTGRES_DB: psdb
steps:
- checkout
- restore_cache:
key: yarn-packages-v3{{ checksum "yarn.lock" }}
- run:
command: yarn test:e2e
- save_cache:
key: yarn-packages-v3{{ checksum "yarn.lock" }}
paths:
- ./node_modules
dockerhub:
environment:
IMAGE_NAME: jootha/devops-ci
docker:
- image: circleci/buildpack-deps:stretch
steps:
- checkout
- setup_remote_docker
- run: docker image build --tag $IMAGE_NAME:app .
- run:
name: Publish Docker Image to Docker Hub
command: |
echo "$DOCKERHUB_PASS" | docker login -u alecomte --password-stdin a86a2e77-25ec-4cd2-b060-c55987957ca4
docker tag $IMAGE_NAME:app $IMAGE_NAME:$CIRCLE_BUILD_NUM
docker tag $IMAGE_NAME:app $IMAGE_NAME:latest
docker push $IMAGE_NAME:latest
docker push $IMAGE_NAME:$CIRCLE_BUILD_NUM