diff --git a/.circleci/config.yml b/.circleci/config.yml index 461688f..b76cc54 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -102,6 +102,29 @@ jobs: docker push $DOCKER_HUB_USER_ID/$DOCKER_HUB_IMAGE:$CIRCLE_BUILD_NUM docker push $DOCKER_HUB_USER_ID/$DOCKER_HUB_IMAGE:latest + deploy-heroku: + <<: *shared-config + docker: + - image: buildpack-deps:trusty + auth: + username: *dockerhub-user-id + password: *dockerhub-password + steps: + - checkout + - setup_dependencies + - run: + name: Heroku Deploy + command: git push https://heroku:$HEROKU_API_KEY@git.heroku.com/$HEROKU_APP_NAME.git HEAD:main + - run: + name: Smoke Test + command: | + HTTPCODE=`curl -s -o /dev/null -w "%{http_code}" https://$HEROKU_APP_NAME.herokuapp.com/` + if [ "$HTTPCODE" -ne 200 ];then + echo "heroku app not responding, failing deploy" + exit 1 + fi + + # --- Workflow definition --- # workflows: @@ -127,3 +150,12 @@ workflows: branches: only: - main + - deploy-heroku: + requires: + - test + - test-e2e + - lint + filters: + branches: + only: + - main diff --git a/Procfile b/Procfile new file mode 100644 index 0000000..36c6b6b --- /dev/null +++ b/Procfile @@ -0,0 +1 @@ +web: yarn start:prod