Add CI/CD Pipeline

This commit is contained in:
Klaus Friese 2026-03-14 10:02:00 +01:00
parent f577c232cb
commit 70fc92a73b

38
.gitlab-ci.yaml Normal file
View file

@ -0,0 +1,38 @@
stages:
- build
- deploy
variables:
# Das ist der Name deines Images in der GitLab Registry
IMAGE_NAME: $CI_REGISTRY_IMAGE:latest
build_image:
stage: build
image: docker:24.0.5
services:
- docker:24.0.5-dind
before_script:
# Login in die GitLab-eigene Registry
- docker login -u $CI_REGISTRY_USER -p $CI_REGISTRY_PASSWORD $CI_REGISTRY
script:
# Bauen und Hochladen des Images
- docker build -t $IMAGE_NAME .
- docker push $IMAGE_NAME
deploy_to_k3s:
stage: deploy
image: alpine:latest
before_script:
# SSH-Client installieren und Key vorbereiten
- apk add --no-cache openssh-client
- mkdir -p ~/.ssh
# Wir nutzen die Variable SSH_PRIVATE_KEY, die wir in GitLab hinterlegt haben
- cp $SSH_PRIVATE_KEY ~/.ssh/id_ed25519
- chmod 600 ~/.ssh/id_ed25519
# Verhindert die Abfrage "Are you sure you want to continue connecting"
- echo -e "Host *\n\tStrictHostKeyChecking no\n\n" > ~/.ssh/config
script:
# Den Server anweisen, das Deployment neu zu starten
- ssh $SERVER_USER@$SERVER_IP "kubectl rollout restart deployment/klausfriese-web"
only:
- main