From 64d091e352c080d5ced2f99752990768c4f07a87 Mon Sep 17 00:00:00 2001 From: Administrator Date: Sat, 30 Apr 2022 12:21:19 +0000 Subject: [PATCH] Update .gitlab-ci.yml file --- .gitlab-ci.yml | 63 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 63 insertions(+) create mode 100644 .gitlab-ci.yml diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml new file mode 100644 index 0000000..04047bb --- /dev/null +++ b/.gitlab-ci.yml @@ -0,0 +1,63 @@ +stages: # List of stages for jobs, and their order of execution + - build + - docker + - deploy + + +variables: + CI_REGISTRY_IMAGE: docker.dergeorg.at/dergeorg + SERVICE: todo-frontend + Docker_name: gitlab-todo-frontend + TAG_LATEST: $CI_REGISTRY_IMAGE/$Docker_name:latest + Project_name: todo-frontend + Docker_url: docker.dergeorg.at + Docker_namespace: dergeorg + DOCKER_TAG: latest + ENV: test + PORT_HOST: 9998 + PORT_CONTAINER: 80 + EUREKA_HOSTNAME: 192.168.1.65 + EUREKA_PORT: 9995 + CONFIG_PORT: 1111 + CONFIG_URL: service.todo.gitlab.dergeorg.at + CONFIG_HTTP: https + +build-job: # Building jar file + image: maven:3.6.3-jdk-11-slim + stage: build + script: + - echo "$APPLICATION_TODO_FRONTEND_TS" > src/environments/environment.prod.ts + - npm install + - npm run build + artifacts: + paths: + - target/*.jar + +publish-job: # Building docker image and publishing it + image: docker:latest + stage: docker + services: + - docker:dind + script: + - docker login $DOCKER_URL -u $DOCKER_USER -p $DOCKER_PW + - docker build -t $DOCKER_URL/$TAG_LATEST . + - docker push $DOCKER_URL/$TAG_LATEST + +deploy-job: # Deploy docker image on ssh server + image: alpine:latest + stage: deploy + tags: + - deployment + before_script: + - 'command -v ssh-agent >/dev/null || ( apk add --update openssh )' + - eval $(ssh-agent -s) + - echo "$SSH_PRIVATE_KEY" | tr -d '\r' | ssh-add - + - mkdir -p ~/.ssh + - chmod 700 ~/.ssh + - ssh-keyscan $SERVER_IP >> ~/.ssh/known_hosts + - chmod 644 ~/.ssh/known_hosts + script: + - ssh $SSH_USER@$SERVER_IP "docker login $DOCKER_URL -u $DOCKER_USER -p $DOCKER_PW" + - ssh $SSH_USER@$SERVER_IP "docker push $DOCKER_URL/$TAG_LATEST" + - ssh $SSH_USER@$SERVER_IP "docker container rm -f $Docker_name || true" + - ssh $SSH_USER@$SERVER_IP "docker run -it -d --name $Docker_name -e -p $PORT_HOST:$PORT_CONTAINER $DOCKER_URL/$TAG_LATEST"