ADD: Jenkinsfile

This commit is contained in:
2024-09-08 15:58:37 +02:00
parent dd2fb9a79f
commit 8a71f9fffe
2 changed files with 75 additions and 0 deletions

37
Jenkinsfile vendored Normal file
View File

@@ -0,0 +1,37 @@
pipeline {
environment {
DOCKER_USERNAME = 'tom'
DOCKER_PASSWORD = credentials('dgitea_tom')
}
agent any
stages {
stage ("Building image arbeitszeit-backend"){
when {
anyOf{
changeset 'Jenkinsfile'
changeset 'Makefile'
changeset 'Backend/**'
}
}
steps {
sh 'make build_backend'
}
}
stage('Deploying image arbeitszeit-backend') {
when {
anyOf{
changeset 'Jenkinsfile'
changeset 'Makefile'
changeset 'Backend/**'
}
}
steps {
sh 'make push_backend'
}
}
}
}

38
Makefile Normal file
View File

@@ -0,0 +1,38 @@
DOCKER_USERNAME ?= tom
DOCKER_PASSWORD ?= $(shell echo "YOUR_DEFAULT_PASSWORD")
IMAGE_REGISTRY ?= git.letsstein.de
APPLICATION_NAME ?= arbeitszeit
_BUILD_ARGS_APP_PART ?= .
_BUILD_ARGS_TAG ?= latest
TAG ?= latest
GIT_COMMIT ?= $(shell git rev-parse --short HEAD)
capitalize = $(shell echo $(1) | sed 's/.*/\u&/')
login_registry:
ifdef JENKINS_HOME
echo "Logging in to Docker registry..."
echo ${DOCKER_PASSWORD} | docker login -u $(DOCKER_USERNAME) --password-stdin $(IMAGE_REGISTRY)
endif
_builder:
docker build --tag ${IMAGE_REGISTRY}/${DOCKER_USERNAME}/${APPLICATION_NAME}-${_BUILD_ARGS_APP_PART}:${GIT_COMMIT} -f $(call capitalize, ${_BUILD_ARGS_APP_PART})/Dockerfile $(call capitalize, ${_BUILD_ARGS_APP_PART})
_pusher: login_registry
docker push ${IMAGE_REGISTRY}/${DOCKER_USERNAME}/${APPLICATION_NAME}-${_BUILD_ARGS_APP_PART}:${GIT_COMMIT}
docker tag ${IMAGE_REGISTRY}/${DOCKER_USERNAME}/${APPLICATION_NAME}-${_BUILD_ARGS_APP_PART}:${GIT_COMMIT} ${IMAGE_REGISTRY}/${DOCKER_USERNAME}/${APPLICATION_NAME}-${_BUILD_ARGS_APP_PART}:${_BUILD_ARGS_TAG}
docker push ${IMAGE_REGISTRY}/${DOCKER_USERNAME}/${APPLICATION_NAME}-${_BUILD_ARGS_APP_PART}:${_BUILD_ARGS_TAG}
build_%:
$(MAKE) _builder \
-e _BUILD_ARGS_APP_PART="$*" \
push_%:
$(MAKE) _pusher \
-e _BUILD_ARGS_APP_PART="$*" \
-e _BUILD_ARGS_TAG="${TAG}"
full_%:
make build_$*
make push_$*