Update .gitlab-ci.yml file
This commit is contained in:
		
							
								
								
									
										63
									
								
								.gitlab-ci.yml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										63
									
								
								.gitlab-ci.yml
									
									
									
									
									
										Normal file
									
								
							@@ -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"
 | 
			
		||||
		Reference in New Issue
	
	Block a user