mirror of
https://gitlab.dit.htwk-leipzig.de/htwk-software/htwkalender.git
synced 2025-07-16 09:38:49 +02:00
feat:#59 add dev deployment and use gitlab registry
This commit is contained in:
@ -20,6 +20,7 @@ stages:
|
||||
- test
|
||||
- oci-build
|
||||
- deploy
|
||||
- deploy-dev # New stage for development deployment
|
||||
|
||||
lint-frontend:
|
||||
image: node:lts
|
||||
@ -113,12 +114,12 @@ build-backend-image:
|
||||
DOCKER_TLS_VERIFY: 1
|
||||
DOCKER_CERT_PATH: "/certs/client"
|
||||
before_script:
|
||||
- docker login -u $CI_DOCKER_REGISTRY_USER -p $CI_DOCKER_REGISTRY_PASSWORD $CI_DOCKER_REGISTRY
|
||||
- docker login -u $CI_REGISTRY_USER -p $CI_REGISTRY_PASSWORD $CI_REGISTRY
|
||||
script:
|
||||
- docker build --pull -t $CI_DOCKER_REGISTRY_REPO:backend -f ./backend/Dockerfile --target prod ./backend
|
||||
- docker push $CI_DOCKER_REGISTRY_REPO:backend
|
||||
- docker build --pull -t $IMAGE_TAG -f ./backend/Dockerfile --target prod ./backend
|
||||
- docker push $IMAGE_TAG
|
||||
rules:
|
||||
- if: $CI_COMMIT_BRANCH == "main"
|
||||
- if: $CI_COMMIT_BRANCH == "main" || $CI_COMMIT_BRANCH == "development"
|
||||
changes:
|
||||
- backend/**/*
|
||||
|
||||
@ -136,15 +137,40 @@ build-frontend-image:
|
||||
DOCKER_TLS_VERIFY: 1
|
||||
DOCKER_CERT_PATH: "/certs/client"
|
||||
before_script:
|
||||
- docker login -u $CI_DOCKER_REGISTRY_USER -p $CI_DOCKER_REGISTRY_PASSWORD $CI_DOCKER_REGISTRY
|
||||
- docker login -u $CI_REGISTRY_USER -p $CI_REGISTRY_PASSWORD $CI_REGISTRY
|
||||
script:
|
||||
- docker build --pull -t $CI_DOCKER_REGISTRY_REPO:frontend -f ./frontend/Dockerfile --target prod .
|
||||
- docker push $CI_DOCKER_REGISTRY_REPO:frontend
|
||||
- docker build --pull -t $IMAGE_TAG -f ./frontend/Dockerfile --target prod .
|
||||
- docker push $IMAGE_TAG
|
||||
rules:
|
||||
- if: $CI_COMMIT_BRANCH == "main"
|
||||
- if: $CI_COMMIT_BRANCH == "main" || $CI_COMMIT_BRANCH == "development"
|
||||
changes:
|
||||
- frontend/**/*
|
||||
|
||||
# Development deployment job
|
||||
deploy-dev:
|
||||
stage: deploy-dev # New stage for development deployment
|
||||
image: alpine:latest
|
||||
before_script:
|
||||
- apk add --no-cache openssh-client sed # install dependencies
|
||||
- eval $(ssh-agent -s) # set some ssh variables
|
||||
- ssh-add <(echo "$CI_SSH_KEY" | tr -d '\r')
|
||||
script:
|
||||
# replace some placeholders
|
||||
- sed -i -e "s|REGISTRY_REPO|$CI_REGISTRY_REPO|" docker-compose.dev.yml # Assuming you have a separate docker-compose file for development
|
||||
# upload necessary files to the dev server
|
||||
- >
|
||||
scp -P $CI_SSH_PORT -o StrictHostKeyChecking=no -o LogLevel=ERROR ./docker-compose.dev.yml ./reverseproxy.dev.conf
|
||||
$CI_SSH_USER@$CI_SSH_DEV_HOST:/home/$CI_SSH_USER/docker/htwkalender/
|
||||
# ssh to the dev server and start the service
|
||||
- >
|
||||
ssh -p $CI_SSH_PORT -o StrictHostKeyChecking=no -o LogLevel=ERROR $CI_SSH_USER@$CI_SSH_DEV_HOST
|
||||
"cd /home/$CI_SSH_USER/docker/htwkalender/ &&
|
||||
docker login -u $CI_REGISTRY_USER -p $CI_REGISTRY_PASSWORD $CI_REGISTRY &&
|
||||
docker compose -f ./docker-compose.dev.yml down && docker compose -f ./docker-compose.dev.yml up -d --remove-orphans && docker logout"
|
||||
rules:
|
||||
- if: $CI_COMMIT_BRANCH == "development" # Only execute for the development branch
|
||||
|
||||
|
||||
deploy-all:
|
||||
stage: deploy
|
||||
image: alpine:latest
|
||||
@ -154,7 +180,7 @@ deploy-all:
|
||||
- ssh-add <(echo "$CI_SSH_KEY" | tr -d '\r')
|
||||
script:
|
||||
# replace some placeholders
|
||||
- sed -i -e "s|DOCKER_REGISTRY_REPO|$CI_DOCKER_REGISTRY_REPO|" docker-compose.prod.yml
|
||||
- sed -i -e "s|REGISTRY_REPO|$CI_REGISTRY_REPO|" docker-compose.prod.yml
|
||||
# upload necessary files to the server
|
||||
- >
|
||||
scp -P $CI_SSH_PORT -o StrictHostKeyChecking=no -o LogLevel=ERROR ./docker-compose.prod.yml ./reverseproxy.conf
|
||||
@ -163,7 +189,7 @@ deploy-all:
|
||||
- >
|
||||
ssh -p $CI_SSH_PORT -o StrictHostKeyChecking=no -o LogLevel=ERROR $CI_SSH_USER@$CI_SSH_HOST
|
||||
"cd /home/$CI_SSH_USER/docker/htwkalender/ &&
|
||||
docker login -u $CI_DOCKER_REGISTRY_USER -p $CI_DOCKER_REGISTRY_PASSWORD $CI_DOCKER_REGISTRY &&
|
||||
docker login -u $CI_REGISTRY_USER -p $CI_REGISTRY_PASSWORD $CI_REGISTRY &&
|
||||
docker compose -f ./docker-compose.prod.yml down && docker compose -f ./docker-compose.prod.yml up -d --remove-orphans && docker logout"
|
||||
rules:
|
||||
- if: $CI_COMMIT_BRANCH == "main"
|
||||
|
Reference in New Issue
Block a user