From fb153c6480a80863070e8f68c238fd1457c0b58d Mon Sep 17 00:00:00 2001 From: zelleg Date: Sat, 15 Jan 2022 11:53:29 +0100 Subject: [PATCH] =?UTF-8?q?update=20config=20file=20and=20add=20first=20Do?= =?UTF-8?q?ckerfile=20=F0=9F=92=A1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .circleci/config.yml | 100 ++++++++++++++++++++++++++++++++++++++++++- Dockerfile | 12 ++++++ 2 files changed, 110 insertions(+), 2 deletions(-) create mode 100644 Dockerfile diff --git a/.circleci/config.yml b/.circleci/config.yml index facb82c..b0a476d 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -33,5 +33,101 @@ jobs: - run: command: yarn test environment: - DATABASE_URL: postgres://$PG_USER:$PG_PWD@localhost:5432/$PG_USER - + DATABASE_URL: postgres://$PG_USER:$PG_PWD@$PG_HOST:5432/$PG_DB + + back-test-e2e: + docker: + - image: circleci/node:lts-fermium + - image: circleci/postgres:9.6.5 + environment: + POSTGRES_DB: $PG_DB + POSTGRES_USER: $PG_USER + POSTGRES_PASSWORD: $PG_PWD + working_directory: ~/repo + steps: + - checkout + - restore_cache: + key: dependencies-{{ checksum "package.json" }}-v1 + - run: + command: yarn test:e2e + environment: + DATABASE_URL: postgres://$PG_USER:$PG_PWD@$PG_HOST:5432/$PG_DB + docker-build-and-push: + working_directory: /dockerapp + 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 $DOCKERHUB_USERNAME -p $DOCKERHUB_PASSWORD + docker tag app $DOCKERHUB_USERNAME/$DOCKERHUB_APP_NAME:$CIRCLE_BUILD_NUM + docker tag app $DOCKERHUB_USERNAME/$DOCKERHUB_APP_NAME:latest + docker push $DOCKERHUB_USERNAME/$DOCKERHUB_APP_NAME:$CIRCLE_BUILD_NUM + docker push $DOCKERHUB_USERNAME/$DOCKERHUB_APP_NAME:latest + + back-deploy-heroku: + docker: + - image: buildpack-deps:trusty + steps: + - checkout + - 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 + + +workflows: + version: 2 + build-test-and-lint: + jobs: + - build + - back-test-unit: + requires: + - build + - back-test-e2e: + requires: + - build + - lint: + requires: + - build + - docker-build-and-push: + requires: + - build + - lint + - back-test-e2e + - back-test-unit + filters: + branches: + only: main + - back-deploy-heroku: + requires: + - build + - lint + - back-test-e2e + - back-test-unit + filters: + branches: + only: main + - server-doc-build: + requires: + - build + - lint + - back-test-e2e + - back-test-unit + filters: + branches: + only: main diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..251eb13 --- /dev/null +++ b/Dockerfile @@ -0,0 +1,12 @@ +FROM node:lts-fermium +LABEL maintainer="TP FINAL" + +WORKDIR /repo + +COPY . /repo + +RUN yarn install + +RUN yarn build + +ENTRYPOINT [ "yarn", "start:prod" ]