Add CI/CD Pipeline
This commit is contained in:
parent
f577c232cb
commit
70fc92a73b
38
.gitlab-ci.yaml
Normal file
38
.gitlab-ci.yaml
Normal 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
|
||||||
Loading…
Reference in a new issue