Git ci config
This commit is contained in:
parent
d4b95138ee
commit
abcbf99b05
@ -26,7 +26,7 @@ build-job: # Building jar file
|
||||
image: maven:3.6.3-jdk-11-slim
|
||||
stage: build
|
||||
script:
|
||||
- mvn clean install && mvn package -B -e
|
||||
- mvn clean install -DskipTests && mvn package -B -e -DskipTests
|
||||
- export
|
||||
artifacts:
|
||||
paths:
|
||||
|
@ -1,53 +1,62 @@
|
||||
# You can override the included template(s) by including variable overrides
|
||||
# SAST customization: https://docs.gitlab.com/ee/user/application_security/sast/#customizing-the-sast-settings
|
||||
# Secret Detection customization: https://docs.gitlab.com/ee/user/application_security/secret_detection/#customizing-settings
|
||||
# Dependency Scanning customization: https://docs.gitlab.com/ee/user/application_security/dependency_scanning/#customizing-the-dependency-scanning-settings
|
||||
# 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
|
||||
stages: # List of stages for jobs, and their order of execution
|
||||
- build
|
||||
- docker
|
||||
- deploy
|
||||
|
||||
|
||||
variables:
|
||||
CI_REGISTRY_IMAGE: dergeorg
|
||||
TAG_LATEST: "$CI_REGISTRY_IMAGE/$CI_COMMIT_REF_NAME:latest"
|
||||
build-job:
|
||||
CI_REGISTRY_IMAGE: docker.dergeorg.at/dergeorg
|
||||
SERVICE: todo-service
|
||||
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
|
||||
stage: build
|
||||
script:
|
||||
- mvn clean install && mvn package -B -e
|
||||
- export
|
||||
- mvn clean install -DskipTests && mvn package -B -e -DskipTests
|
||||
- export
|
||||
artifacts:
|
||||
paths:
|
||||
- target/*.jar
|
||||
publish-job:
|
||||
- target/*.jar
|
||||
|
||||
publish-job: # Building docker image and publishing it
|
||||
image: docker:latest
|
||||
stage: docker
|
||||
services:
|
||||
- docker:19.03-dind
|
||||
- docker:dind
|
||||
script:
|
||||
- docker build -t $TAG_LATEST .
|
||||
- docker login -u $DOCKER_USER -p $DOCKER_PW
|
||||
- docker push $TAG_LATEST
|
||||
deploy-job:
|
||||
- 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
|
||||
- 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
|
||||
- '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 -u $DOCKER_USER -p $DOCKER_PW"
|
||||
- ssh $SSH_USER@$SERVER_IP "docker pull $TAG_LATEST"
|
||||
- ssh $SSH_USER@$SERVER_IP "docker container rm -f my-app || true"
|
||||
- ssh $SSH_USER@$SERVER_IP "docker run -d -p $SERVER_IP:8888:8080 --name my-app
|
||||
$TAG_LATEST"
|
||||
include:
|
||||
- template: Security/Secret-Detection.gitlab-ci.yml
|
||||
- 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 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"
|
||||
|
Loading…
x
Reference in New Issue
Block a user