.circleci/config.yml
version: 2.1
orbs:
cypress: cypress-io/cypress@1.3.0
workflows:
version: 2.1
Backend-Build-Pipeline:
jobs:
- gitclone
- build-backend:
requires:
- gitclone
- test-backend:
requires:
- build-backend
- sonar-backend:
context: mtgx-web-context
requires:
- test-backend
- deploy-backend:
context: mtgx-web-context
requires:
- test-backend
filters:
branches:
only:
- master
Frontend-Build-Pipeline:
jobs:
- gitclone
- build-frontend:
requires:
- gitclone
- test-frontend:
requires:
- build-frontend
- sonar-frontend:
context: mtgx-web-context
requires:
- test-frontend
- deploy-frontend:
context: mtgx-web-context
requires:
- test-frontend
filters:
branches:
only:
- master
executors:
sonar-scaner:
docker:
- image: eduardomoroni/sonar-scanner:ALPHA
working_directory: /tmp/trading-card-manager
frontend:
environment:
- CI: true
docker:
- image: circleci/node:12.18.3
working_directory: /tmp/trading-card-manager/packages/frontend
backend:
environment:
- CI: true
docker:
- image: circleci/node:12.18.3
working_directory: /tmp/trading-card-manager/packages/backend
cli:
environment:
- CI: true
docker:
- image: circleci/node@sha256:c6881bf3c9365341052e09f98fa61c0246810023787cbf1480ac30ba347ef033
working_directory: /tmp/trading-card-manager
jobs:
gitclone:
working_directory: /tmp/trading-card-manager
executor: frontend
steps:
- checkout
- run:
name: 'Npm Install'
command: make install
- persist_to_workspace:
root: /tmp/trading-card-manager
paths: .
build-backend:
executor: backend
steps:
- attach_workspace:
at: /tmp/trading-card-manager
- run:
name: 'Npm Install'
command: make install
- persist_to_workspace:
root: /tmp/trading-card-manager
paths:
- packages/backend
test-backend:
executor: backend
steps:
- attach_workspace:
at: /tmp/trading-card-manager
- run:
name: 'CI Check'
command: make test
- store_artifacts:
path: coverage
prefix: coverage
- persist_to_workspace:
root: /tmp/trading-card-manager
paths: packages/backend/functions/coverage
sonar-backend:
executor: sonar-scaner
working_directory: /tmp/trading-card-manager/packages/backend
steps:
- attach_workspace:
at: /tmp/trading-card-manager
- run:
name: 'Sonar'
command: make sonarqube
deploy-backend:
executor: backend
steps:
- attach_workspace:
at: /tmp/trading-card-manager
- run:
name: 'Deploy'
command: make deploy-functions
build-frontend:
executor: frontend
steps:
- attach_workspace:
at: /tmp/trading-card-manager
- run:
name: 'Npm Install'
command: make install
- persist_to_workspace:
root: /tmp/trading-card-manager
paths:
- packages/frontend
test-frontend:
executor: frontend
steps:
- attach_workspace:
at: /tmp/trading-card-manager
- run:
name: 'CI Check'
command: make test
- store_artifacts:
path: coverage
prefix: coverage
- persist_to_workspace:
root: /tmp/trading-card-manager
paths: packages/frontend/coverage
sonar-frontend:
executor: sonar-scaner
working_directory: /tmp/trading-card-manager/packages/frontend
steps:
- attach_workspace:
at: /tmp/trading-card-manager
- run:
name: 'Sonar'
command: make sonarqube
deploy-frontend:
executor: frontend
steps:
- attach_workspace:
at: /tmp/trading-card-manager
- run:
name: 'Deploy'
command: make deploy