From d829e9adcc15c3b518e1c7a412bb4922d1e38e90 Mon Sep 17 00:00:00 2001 From: Johann Date: Mon, 2 Nov 2020 15:55:18 +0100 Subject: [PATCH] =?UTF-8?q?Ajout=20=C3=A9tape=20build=20et=20deploy?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .circleci/config.yml | 58 +++++++++++++++++++++++++++++++++++++++++++- Dockerfile | 7 ++++++ docker-compose.yml | 4 +++ 3 files changed, 68 insertions(+), 1 deletion(-) create mode 100644 Dockerfile create mode 100644 docker-compose.yml diff --git a/.circleci/config.yml b/.circleci/config.yml index 73a6a8c..393b4f7 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -3,6 +3,8 @@ workflows: workflow1: jobs: - hello1 + workflow2: + jobs: - yarn1 - lint1: requires: @@ -11,9 +13,27 @@ workflows: requires: - yarn1 - database1: + requires: + - yarn1 + - build: requires: - lint1 - test1 + filters: + branches: + only: main + - deploy: + requires: + - build +variables: + +executors: + docker-publisher: + environment: + IMAGE_NAME: johanngif/my-awesome-ci-expr + docker: + - image: circleci/buildpack-deps:stretch + jobs: hello1: docker: @@ -69,9 +89,45 @@ jobs: POSTGRES_USER: psqluer POSTGRES_PASSWORD: psqlpassword POSTGRES_DB: psdb - steps: - checkout - restore_cache: key: yarn-v1-packages-{{ checksum "yarn.lock" }} - run: yarn test:e2e + + build: + executor: docker-publisher + steps: + - checkout + - setup_remote_docker + - run: + name: Build Docker image + command: | + docker build -t $IMAGE_NAME:latest . + - run: + name: Archive Docker image + command: docker save -o image.tar $IMAGE_NAME + - persist_to_workspace: + root: . + paths: + - ./image.tar + + deploy: + executor: docker-publisher + steps: + - attach_workspace: + at: /tmp/workspace + - setup_remote_docker + - run: + name: Load archived Docker image + command: docker load -i /tmp/workspace/image.tar + - run: + name: Publish Docker Image to Docker Hub + command: | + echo "Login : $DOCKERHUB_USERNAME" + echo "Mot de passe : $DOCKERHUB_PASSWORD" + echo "$DOCKERHUB_PASSWORD" | docker login --username "$DOCKERHUB_USERNAME" --password-stdin + IMAGE_TAG=${CIRCLE_TAG/v/''} + docker tag $IMAGE_NAME:latest $IMAGE_NAME:$IMAGE_TAG + docker push $IMAGE_NAME:latest + docker push $IMAGE_NAME:$IMAGE_TAG diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..4af9827 --- /dev/null +++ b/Dockerfile @@ -0,0 +1,7 @@ +FROM node:12.18.4 +WORKDIR /usr/src/app +COPY package.json yarn.lock ./ +RUN yarn global add node-gyp && yarn install +COPY . . +EXPOSE 3000 +CMD ["yarn", "start"] \ No newline at end of file diff --git a/docker-compose.yml b/docker-compose.yml new file mode 100644 index 0000000..77afdaf --- /dev/null +++ b/docker-compose.yml @@ -0,0 +1,4 @@ +version: '3.6' +services: + testing: + build: .