version: 2.1 jobs: build: docker: &shared_docker - image: circleci/node:12 steps: - checkout - restore_cache: keys: - npm-v2-dependencies-{{ checksum "yarn.lock" }} - run: yarn install - save_cache: paths: - ./node_modules key: npm-v2-dependencies-{{ checksum "yarn.lock" }} deploy: docker: - image: docker:17.05.0-ce-git steps: - checkout - setup_remote_docker - run: name: Build application Docker image command: | docker build --cache-from=app -t app . - deploy: name: Publish application to docker hub command: | docker login -e $DOCKER_HUB_EMAIL -u $DOCKER_HUB_USER_ID -p $DOCKER_HUB_PWD docker tag app $DOCKER_HUB_USER_ID/devops-final-front:$CIRCLE_BUILD_NUM docker tag app $DOCKER_HUB_USER_ID/devops-final-front:latest docker push $DOCKER_HUB_USER_ID/devops-final-front:$CIRCLE_BUILD_NUM docker push $DOCKER_HUB_USER_ID/devops-final-front:latest workflows: version: 2 mybuild: jobs: - build - deploy: requires: - build