Git ci config
This commit is contained in:
		@@ -26,7 +26,7 @@ build-job:       # Building jar file
 | 
				
			|||||||
  image: maven:3.6.3-jdk-11-slim
 | 
					  image: maven:3.6.3-jdk-11-slim
 | 
				
			||||||
  stage: build
 | 
					  stage: build
 | 
				
			||||||
  script:
 | 
					  script:
 | 
				
			||||||
    - mvn clean install && mvn package -B -e 
 | 
					    - mvn clean install -DskipTests && mvn package -B -e -DskipTests
 | 
				
			||||||
    - export
 | 
					    - export
 | 
				
			||||||
  artifacts:
 | 
					  artifacts:
 | 
				
			||||||
    paths:
 | 
					    paths:
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,42 +1,54 @@
 | 
				
			|||||||
# You can override the included template(s) by including variable overrides
 | 
					stages:          # List of stages for jobs, and their order of execution
 | 
				
			||||||
# SAST customization: https://docs.gitlab.com/ee/user/application_security/sast/#customizing-the-sast-settings
 | 
					  - build
 | 
				
			||||||
# Secret Detection customization: https://docs.gitlab.com/ee/user/application_security/secret_detection/#customizing-settings
 | 
					  - docker
 | 
				
			||||||
# Dependency Scanning customization: https://docs.gitlab.com/ee/user/application_security/dependency_scanning/#customizing-the-dependency-scanning-settings
 | 
					  - deploy
 | 
				
			||||||
# Container Scanning customization: https://docs.gitlab.com/ee/user/application_security/container_scanning/#customizing-the-container-scanning-settings
 | 
					
 | 
				
			||||||
# Note that environment variables can be set in several places
 | 
					
 | 
				
			||||||
# See https://docs.gitlab.com/ee/ci/variables/#cicd-variable-precedence
 | 
					 | 
				
			||||||
stages:
 | 
					 | 
				
			||||||
- build
 | 
					 | 
				
			||||||
- docker
 | 
					 | 
				
			||||||
- deploy
 | 
					 | 
				
			||||||
variables:
 | 
					variables:
 | 
				
			||||||
  CI_REGISTRY_IMAGE: dergeorg
 | 
					  CI_REGISTRY_IMAGE: docker.dergeorg.at/dergeorg
 | 
				
			||||||
  TAG_LATEST: "$CI_REGISTRY_IMAGE/$CI_COMMIT_REF_NAME:latest"
 | 
					  SERVICE: todo-service
 | 
				
			||||||
build-job:
 | 
					  Docker_name:  gitlab-todo-service
 | 
				
			||||||
 | 
					  TAG_LATEST: $CI_REGISTRY_IMAGE/$Docker_name:latest
 | 
				
			||||||
 | 
					  Project_name: todo-service
 | 
				
			||||||
 | 
					  Docker_url:  docker.dergeorg.at
 | 
				
			||||||
 | 
					  Docker_namespace:  dergeorg
 | 
				
			||||||
 | 
					  DOCKER_TAG:  latest
 | 
				
			||||||
 | 
					  ENV: test
 | 
				
			||||||
 | 
					  PORT_HOST: 2222
 | 
				
			||||||
 | 
					  PORT_CONTAINER: 2222
 | 
				
			||||||
 | 
					  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
 | 
					  image: maven:3.6.3-jdk-11-slim
 | 
				
			||||||
  stage: build
 | 
					  stage: build
 | 
				
			||||||
  script:
 | 
					  script:
 | 
				
			||||||
  - mvn clean install && mvn package -B -e
 | 
					    - mvn clean install -DskipTests && mvn package -B -e -DskipTests
 | 
				
			||||||
    - export
 | 
					    - export
 | 
				
			||||||
  artifacts:
 | 
					  artifacts:
 | 
				
			||||||
    paths:
 | 
					    paths:
 | 
				
			||||||
      - target/*.jar
 | 
					      - target/*.jar
 | 
				
			||||||
publish-job:
 | 
					
 | 
				
			||||||
 | 
					publish-job:       # Building docker image and publishing it
 | 
				
			||||||
  image: docker:latest
 | 
					  image: docker:latest
 | 
				
			||||||
  stage: docker
 | 
					  stage: docker
 | 
				
			||||||
  services:
 | 
					  services:
 | 
				
			||||||
  - docker:19.03-dind
 | 
					    - docker:dind
 | 
				
			||||||
  script:
 | 
					  script:
 | 
				
			||||||
  - docker build -t $TAG_LATEST .
 | 
					    - docker login $DOCKER_URL -u $DOCKER_USER -p $DOCKER_PW
 | 
				
			||||||
  - docker login -u $DOCKER_USER -p $DOCKER_PW
 | 
					    - docker build -t $DOCKER_URL/$TAG_LATEST .
 | 
				
			||||||
  - docker push $TAG_LATEST
 | 
					    - docker push $DOCKER_URL/$TAG_LATEST
 | 
				
			||||||
deploy-job:
 | 
					
 | 
				
			||||||
 | 
					deploy-job:      # Deploy docker image on ssh server
 | 
				
			||||||
  image: alpine:latest
 | 
					  image: alpine:latest
 | 
				
			||||||
  stage: deploy
 | 
					  stage: deploy
 | 
				
			||||||
  tags:
 | 
					  tags:
 | 
				
			||||||
    - deployment
 | 
					    - deployment
 | 
				
			||||||
  before_script:
 | 
					  before_script:
 | 
				
			||||||
  - command -v ssh-agent >/dev/null || ( apk add --update openssh )
 | 
					    - 'command -v ssh-agent >/dev/null || ( apk add --update openssh )'
 | 
				
			||||||
    - eval $(ssh-agent -s)
 | 
					    - eval $(ssh-agent -s)
 | 
				
			||||||
    - echo "$SSH_PRIVATE_KEY" | tr -d '\r' | ssh-add -
 | 
					    - echo "$SSH_PRIVATE_KEY" | tr -d '\r' | ssh-add -
 | 
				
			||||||
    - mkdir -p ~/.ssh
 | 
					    - mkdir -p ~/.ssh
 | 
				
			||||||
@@ -44,10 +56,7 @@ deploy-job:
 | 
				
			|||||||
    - ssh-keyscan $SERVER_IP >> ~/.ssh/known_hosts
 | 
					    - ssh-keyscan $SERVER_IP >> ~/.ssh/known_hosts
 | 
				
			||||||
    - chmod 644 ~/.ssh/known_hosts
 | 
					    - chmod 644 ~/.ssh/known_hosts
 | 
				
			||||||
  script:
 | 
					  script:
 | 
				
			||||||
  - ssh $SSH_USER@$SERVER_IP "docker login -u $DOCKER_USER -p $DOCKER_PW"
 | 
					    - ssh $SSH_USER@$SERVER_IP "docker login $DOCKER_URL -u $DOCKER_USER -p $DOCKER_PW"
 | 
				
			||||||
  - ssh $SSH_USER@$SERVER_IP "docker pull $TAG_LATEST"
 | 
					    - ssh $SSH_USER@$SERVER_IP "docker push $DOCKER_URL/$TAG_LATEST"
 | 
				
			||||||
  - ssh $SSH_USER@$SERVER_IP "docker container rm -f my-app || true"
 | 
					    - ssh $SSH_USER@$SERVER_IP "docker container rm -f $Docker_name || true"
 | 
				
			||||||
  - ssh $SSH_USER@$SERVER_IP "docker run -d -p $SERVER_IP:8888:8080 --name my-app
 | 
					    - ssh $SSH_USER@$SERVER_IP "docker run -it -d --name $Docker_name -e PROJEKTNAME_UNIQUE='$Project_name:$CI_JOB_ID' -e PROJEKTNAME='$Project_name' -e HOSTNAME=$EUREKA_HOSTNAME -e EUREKAPORT=$EUREKA_PORT -e server.port=$CONFIG_PORT -e CONFIGPORT=$CONFIG_PORT -e KEY='$CONFIG_KEY' -e CONFIGURL='$CONFIG_URL' -e CONFIGUSER='$CONFIG_USER' -e CONFIGHTTP=$CONFIG_HTTP -p $PORT_HOST:$PORT_CONTAINER $DOCKER_URL/$TAG_LATEST"
 | 
				
			||||||
    $TAG_LATEST"
 | 
					 | 
				
			||||||
include:
 | 
					 | 
				
			||||||
- template: Security/Secret-Detection.gitlab-ci.yml
 | 
					 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user