Yield generated for a27394e8-82af-420a-a8e0-a580f40ca842
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.
 
 
 

112 lines
2.9 KiB

version: 2.1
commands:
restore_cache_cmd:
description: "Restore cache from a previous workflow"
steps:
- restore_cache:
keys:
- dependencies-{{ checksum "package.json" }}-{{ .Environment.CACHE_VERSION }}
# fallback to using the latest cache if no exact match is found
- dependencies-
save_cache_cmd:
description: "save cache with workflow new state"
steps:
- save_cache:
key: dependencies-{{ checksum "package.json" }}-{{ .Environment.CACHE_VERSION }}
paths:
- node_modules
executors:
node-executor:
docker:
- image: circleci/node:8.12.0
netlify-deploy-executor:
docker:
- image: circleci/node:dubnium-browsers
dockerhub-publisher:
environment:
IMAGE_NAME: morganlmd/devops-tp-final-front-docker
IMAGE_NAME_TMP: app
docker:
- image: docker:17.05.0-ce-git
jobs:
install:
executor: node-executor
working_directory: ~/repo
steps:
- checkout
- restore_cache_cmd
- run: yarn install
- save_cache_cmd
front-netlify-build:
executor: node-executor
working_directory: ~/repo
steps:
- checkout
- restore_cache_cmd
- run: yarn build
- run:
name: Copy deployment artifacts to workspace
command: |
cp ./dist/ /tmp/server -r
- store_artifacts:
path: /tmp/server
- persist_to_workspace:
root: /tmp
paths:
- server
- save_cache_cmd
front-netlify-deploy:
executor: netlify-deploy-executor
working_directory: ~/repo
steps:
- attach_workspace:
at: /tmp
- run:
name: install netlify cli
command: sudo npm install netlify-cli -g
- run:
name: Deploy app
command: netlify deploy --site $NETLIFY_SITE_ID --auth $NETLIFY_AUTH_TOKEN --prod --dir=/tmp/server
dockerhub-publishing:
working_directory: /dockerapp
executor: dockerhub-publisher
steps:
- checkout
- setup_remote_docker
- run:
name: Building docker image
command: |
docker build --cache-from=app -t app .
- deploy:
name: publishing docker image to dockerhub
command: |
docker login -e $DOCKER_HUB_EMAIL -u $DOCKER_HUB_USER_ID -p $DOCKER_HUB_PWD
docker tag $IMAGE_NAME_TMP $IMAGE_NAME:$CIRCLE_BUILD_NUM
docker tag $IMAGE_NAME_TMP $IMAGE_NAME:latest
docker push $IMAGE_NAME:$CIRCLE_BUILD_NUM
docker push $IMAGE_NAME:latest
workflows:
version: 2
build-test-back-and-db:
jobs:
- install
- front-netlify-build:
requires:
- install
- front-netlify-deploy:
requires:
- install
- front-netlify-build
- dockerhub-publishing:
requires:
- install