mirror of
https://gitlab.dit.htwk-leipzig.de/htwk-software/htwkalender.git
synced 2025-08-07 04:09:15 +02:00
fix: add job rules
This commit is contained in:
@@ -107,6 +107,54 @@ test-frontend:
|
|||||||
dependencies:
|
dependencies:
|
||||||
- lint-frontend
|
- lint-frontend
|
||||||
|
|
||||||
|
deploy-dev:
|
||||||
|
stage: deploy
|
||||||
|
image: alpine:latest
|
||||||
|
before_script:
|
||||||
|
- apk add --no-cache openssh-client sed
|
||||||
|
- eval $(ssh-agent -s)
|
||||||
|
- ssh-add <(echo "$CI_SSH_KEY" | tr -d '\r')
|
||||||
|
script:
|
||||||
|
- sed -i -e "s|DOCKER_REGISTRY_REPO|$CI_REGISTRY_IMAGE|" docker-compose.dev.yml
|
||||||
|
- sed -i -e "s|DEV_TAG|dev|" docker-compose.dev.yml
|
||||||
|
- '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 -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"
|
||||||
|
deploy-all:
|
||||||
|
stage: deploy
|
||||||
|
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|DOCKER_REGISTRY_REPO|$CI_REGISTRY_IMAGE|" docker-compose.prod.yml
|
||||||
|
- sed -i -e "s|PROD_TAG|latest|" 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
|
||||||
|
$CI_SSH_USER@$CI_SSH_HOST:/home/$CI_SSH_USER/docker/htwkalender/
|
||||||
|
# ssh to the server and start the service
|
||||||
|
- >
|
||||||
|
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_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 &&
|
||||||
|
docker exec --user root htwkalender-htwkalender-frontend-1 /bin/sh -c \"echo 'google-site-verification: $GOOGLE_VERIFICATION.html' > ./$GOOGLE_VERIFICATION.html\" "
|
||||||
|
rules:
|
||||||
|
- if: $CI_COMMIT_BRANCH == "main"
|
||||||
|
|
||||||
include:
|
include:
|
||||||
- local: 'charts/ci-build-deploy.yml'
|
- local: 'charts/ci-build-deploy.yml'
|
||||||
- template: Security/Dependency-Scanning.gitlab-ci.yml
|
- template: Security/Dependency-Scanning.gitlab-ci.yml
|
||||||
|
@@ -12,7 +12,14 @@
|
|||||||
DOCKER_CERT_PATH: "/certs/client"
|
DOCKER_CERT_PATH: "/certs/client"
|
||||||
before_script:
|
before_script:
|
||||||
- echo $CI_REGISTRY_PASSWORD | docker login -u $CI_REGISTRY_USER --password-stdin $CI_REGISTRY
|
- echo $CI_REGISTRY_PASSWORD | docker login -u $CI_REGISTRY_USER --password-stdin $CI_REGISTRY
|
||||||
|
script:
|
||||||
|
- |
|
||||||
|
docker build --pull \
|
||||||
|
-t $IMAGE_TAG \
|
||||||
|
-f $DOCKERFILE \
|
||||||
|
--target $BUILD_TARGET \
|
||||||
|
$BUILD_PATH
|
||||||
|
- docker push "$IMAGE_TAG"
|
||||||
artifacts:
|
artifacts:
|
||||||
paths:
|
paths:
|
||||||
- .env_file
|
- .env_file
|
||||||
@@ -24,14 +31,6 @@
|
|||||||
BUILD_TARGET: "prod"
|
BUILD_TARGET: "prod"
|
||||||
BUILD_PATH: "./services"
|
BUILD_PATH: "./services"
|
||||||
DOCKERFILE: "./services/data-manager/Dockerfile"
|
DOCKERFILE: "./services/data-manager/Dockerfile"
|
||||||
script:
|
|
||||||
- |
|
|
||||||
docker build --pull \
|
|
||||||
-t $IMAGE_TAG \
|
|
||||||
-f $DOCKERFILE \
|
|
||||||
--target $BUILD_TARGET \
|
|
||||||
$BUILD_PATH
|
|
||||||
- docker push "$IMAGE_TAG"
|
|
||||||
after_script:
|
after_script:
|
||||||
- echo "export DATA_MANAGER_IMAGE=$IMAGE_TAG" >> .env_file
|
- echo "export DATA_MANAGER_IMAGE=$IMAGE_TAG" >> .env_file
|
||||||
|
|
||||||
@@ -39,19 +38,19 @@ build-data-manager-image-dev:
|
|||||||
extends: .build-data-manager-image
|
extends: .build-data-manager-image
|
||||||
variables:
|
variables:
|
||||||
IMAGE_TAG: "$CI_REGISTRY_IMAGE/data-manager:dev"
|
IMAGE_TAG: "$CI_REGISTRY_IMAGE/data-manager:dev"
|
||||||
#rules:
|
rules:
|
||||||
# - if: $CI_COMMIT_BRANCH == "development"
|
- if: $CI_COMMIT_BRANCH == "development"
|
||||||
# changes:
|
changes:
|
||||||
# - services/data-manager/**/*
|
- services/data-manager/**/*
|
||||||
|
|
||||||
build-data-manager-image-prod:
|
build-data-manager-image-prod:
|
||||||
extends: .build-data-manager-image
|
extends: .build-data-manager-image
|
||||||
variables:
|
variables:
|
||||||
IMAGE_TAG: "$CI_REGISTRY_IMAGE/data-manager:latest"
|
IMAGE_TAG: "$CI_REGISTRY_IMAGE/data-manager:latest"
|
||||||
#rules:
|
rules:
|
||||||
# - if: $CI_COMMIT_BRANCH == "main"
|
- if: $CI_COMMIT_BRANCH == "main"
|
||||||
# changes:
|
changes:
|
||||||
# - services/data-manager/**/*
|
- services/data-manager/**/*
|
||||||
|
|
||||||
.build-ical-image:
|
.build-ical-image:
|
||||||
extends: .build-image
|
extends: .build-image
|
||||||
@@ -59,8 +58,6 @@ build-data-manager-image-prod:
|
|||||||
BUILD_TARGET: "prod"
|
BUILD_TARGET: "prod"
|
||||||
BUILD_PATH: "./services"
|
BUILD_PATH: "./services"
|
||||||
DOCKERFILE: "./services/ical/Dockerfile"
|
DOCKERFILE: "./services/ical/Dockerfile"
|
||||||
script:
|
|
||||||
- echo "Build"
|
|
||||||
after_script:
|
after_script:
|
||||||
- echo "export ICAL_IMAGE=$IMAGE_TAG" >> .env_file
|
- echo "export ICAL_IMAGE=$IMAGE_TAG" >> .env_file
|
||||||
|
|
||||||
@@ -70,10 +67,10 @@ build-ical-image-dev:
|
|||||||
IMAGE_TAG: "$CI_REGISTRY_IMAGE/ical:dev"
|
IMAGE_TAG: "$CI_REGISTRY_IMAGE/ical:dev"
|
||||||
needs:
|
needs:
|
||||||
- job: build-data-manager-image-dev
|
- job: build-data-manager-image-dev
|
||||||
#rules:
|
rules:
|
||||||
# - if: $CI_COMMIT_BRANCH == "development"
|
- if: $CI_COMMIT_BRANCH == "development"
|
||||||
# changes:
|
changes:
|
||||||
# - services/ical/**/*
|
- services/ical/**/*
|
||||||
|
|
||||||
build-ical-image-prod:
|
build-ical-image-prod:
|
||||||
extends: .build-ical-image
|
extends: .build-ical-image
|
||||||
@@ -81,10 +78,10 @@ build-ical-image-prod:
|
|||||||
IMAGE_TAG: "$CI_REGISTRY_IMAGE/ical:latest"
|
IMAGE_TAG: "$CI_REGISTRY_IMAGE/ical:latest"
|
||||||
needs:
|
needs:
|
||||||
- job: build-data-manager-image-prod
|
- job: build-data-manager-image-prod
|
||||||
#rules:
|
rules:
|
||||||
# - if: $CI_COMMIT_BRANCH == "main"
|
- if: $CI_COMMIT_BRANCH == "main"
|
||||||
# changes:
|
changes:
|
||||||
# - services/ical/**/*
|
- services/ical/**/*
|
||||||
|
|
||||||
.build-frontend-image:
|
.build-frontend-image:
|
||||||
extends: .build-image
|
extends: .build-image
|
||||||
@@ -92,8 +89,6 @@ build-ical-image-prod:
|
|||||||
BUILD_TARGET: "prod"
|
BUILD_TARGET: "prod"
|
||||||
BUILD_PATH: "./frontend"
|
BUILD_PATH: "./frontend"
|
||||||
DOCKERFILE: "./frontend/Dockerfile"
|
DOCKERFILE: "./frontend/Dockerfile"
|
||||||
script:
|
|
||||||
- echo "Build"
|
|
||||||
after_script:
|
after_script:
|
||||||
- echo "export FRONTEND_IMAGE=$IMAGE_TAG" >> .env_file
|
- echo "export FRONTEND_IMAGE=$IMAGE_TAG" >> .env_file
|
||||||
|
|
||||||
@@ -103,10 +98,10 @@ build-frontend-image-dev:
|
|||||||
IMAGE_TAG: "$CI_REGISTRY_IMAGE/frontend:dev"
|
IMAGE_TAG: "$CI_REGISTRY_IMAGE/frontend:dev"
|
||||||
needs:
|
needs:
|
||||||
- job: build-ical-image-dev
|
- job: build-ical-image-dev
|
||||||
#rules:
|
rules:
|
||||||
# - if: $CI_COMMIT_BRANCH == "development"
|
- if: $CI_COMMIT_BRANCH == "development"
|
||||||
# changes:
|
changes:
|
||||||
# - frontend/**/*
|
- frontend/**/*
|
||||||
|
|
||||||
build-frontend-image-prod:
|
build-frontend-image-prod:
|
||||||
extends: .build-frontend-image
|
extends: .build-frontend-image
|
||||||
@@ -114,10 +109,10 @@ build-frontend-image-prod:
|
|||||||
IMAGE_TAG: "$CI_REGISTRY_IMAGE/frontend:latest"
|
IMAGE_TAG: "$CI_REGISTRY_IMAGE/frontend:latest"
|
||||||
needs:
|
needs:
|
||||||
- job: build-ical-image-prod
|
- job: build-ical-image-prod
|
||||||
#rules:
|
rules:
|
||||||
# - if: $CI_COMMIT_BRANCH == "main"
|
- if: $CI_COMMIT_BRANCH == "main"
|
||||||
# changes:
|
changes:
|
||||||
# - frontend/**/*
|
- frontend/**/*
|
||||||
|
|
||||||
.package-helm-chart:
|
.package-helm-chart:
|
||||||
stage: package
|
stage: package
|
||||||
@@ -158,12 +153,12 @@ package-helm-chart-dev:
|
|||||||
- yq e -i '(.production) = false' $VALUES_FILE
|
- yq e -i '(.production) = false' $VALUES_FILE
|
||||||
needs:
|
needs:
|
||||||
- build-frontend-image-dev
|
- build-frontend-image-dev
|
||||||
#rules:
|
rules:
|
||||||
# - if: '$CI_COMMIT_BRANCH == "development"'
|
- if: '$CI_COMMIT_BRANCH == "development"'
|
||||||
# changes:
|
changes:
|
||||||
# - services/data-manager/**/*
|
- services/data-manager/**/*
|
||||||
# - services/ical/**/*
|
- services/ical/**/*
|
||||||
# - frontend/**/*
|
- frontend/**/*
|
||||||
|
|
||||||
package-helm-chart-prod:
|
package-helm-chart-prod:
|
||||||
extends: .package-helm-chart
|
extends: .package-helm-chart
|
||||||
@@ -188,14 +183,14 @@ package-helm-chart-prod:
|
|||||||
- envsubst < configmap-google.yaml > $CHARTS_DIR/templates/configmap-google.yaml
|
- envsubst < configmap-google.yaml > $CHARTS_DIR/templates/configmap-google.yaml
|
||||||
needs:
|
needs:
|
||||||
- build-frontend-image-prod
|
- build-frontend-image-prod
|
||||||
#rules:
|
rules:
|
||||||
# - if: '$CI_COMMIT_BRANCH == "main"'
|
- if: '$CI_COMMIT_BRANCH == "main"'
|
||||||
# changes:
|
changes:
|
||||||
# - services/data-manager/**/*
|
- services/data-manager/**/*
|
||||||
# - services/ical/**/*
|
- services/ical/**/*
|
||||||
# - frontend/**/*
|
- frontend/**/*
|
||||||
|
|
||||||
.trigger_deploy:
|
trigger_deploy:
|
||||||
stage: deploy
|
stage: deploy
|
||||||
image: alpine:latest
|
image: alpine:latest
|
||||||
before_script:
|
before_script:
|
||||||
@@ -214,14 +209,5 @@ package-helm-chart-prod:
|
|||||||
-F "variables[UPSTREAM_REGISTRY_PATH]=$CI_REGISTRY_IMAGE" \
|
-F "variables[UPSTREAM_REGISTRY_PATH]=$CI_REGISTRY_IMAGE" \
|
||||||
"$CI_API_V4_URL/projects/$CI_DEPLOY_REPO_ID/trigger/pipeline"
|
"$CI_API_V4_URL/projects/$CI_DEPLOY_REPO_ID/trigger/pipeline"
|
||||||
- "echo 'The $PROJECT_NAME can be viewed on: $PROJECT_URL'"
|
- "echo 'The $PROJECT_NAME can be viewed on: $PROJECT_URL'"
|
||||||
#rules:
|
rules:
|
||||||
# - if: '$CI_COMMIT_BRANCH == "main" || $CI_COMMIT_BRANCH == "development"'
|
- if: '$CI_COMMIT_BRANCH == "main" || $CI_COMMIT_BRANCH == "development"'
|
||||||
|
|
||||||
trigger-dev:
|
|
||||||
extends: .trigger_deploy
|
|
||||||
needs:
|
|
||||||
- package-helm-chart-dev
|
|
||||||
trigger-prod:
|
|
||||||
extends: .trigger_deploy
|
|
||||||
needs:
|
|
||||||
- package-helm-chart-prod
|
|
||||||
|
@@ -16,8 +16,7 @@
|
|||||||
|
|
||||||
services:
|
services:
|
||||||
htwkalender-data-manager:
|
htwkalender-data-manager:
|
||||||
image: DOCKER_REGISTRY_REPO-data-manager # DOCKER_REGISTRY_REPO will be replaced by CI
|
image: DOCKER_REGISTRY_REPO/data-manager:DEV_TAG # DOCKER_REGISTRY_REPO will be replaced by CI
|
||||||
command: "--http=0.0.0.0:8090 --dir=/htwkalender-data-manager/data/pb_data"
|
|
||||||
pull_policy: always
|
pull_policy: always
|
||||||
restart: always
|
restart: always
|
||||||
volumes:
|
volumes:
|
||||||
@@ -26,7 +25,7 @@ services:
|
|||||||
- "net"
|
- "net"
|
||||||
|
|
||||||
htwkalender-ical:
|
htwkalender-ical:
|
||||||
image: DOCKER_REGISTRY_REPO-ical # DOCKER_REGISTRY_REPO will be replaced by CI
|
image: DOCKER_REGISTRY_REPO/ical:DEV_TAG # DOCKER_REGISTRY_REPO will be replaced by CI
|
||||||
pull_policy: always
|
pull_policy: always
|
||||||
restart: always
|
restart: always
|
||||||
environment:
|
environment:
|
||||||
@@ -37,7 +36,7 @@ services:
|
|||||||
- htwkalender-data-manager
|
- htwkalender-data-manager
|
||||||
|
|
||||||
htwkalender-frontend:
|
htwkalender-frontend:
|
||||||
image: DOCKER_REGISTRY_REPO-frontend # DOCKER_REGISTRY_REPO will be replaced by CI
|
image: DOCKER_REGISTRY_REPO/frontend:DEV_TAG # DOCKER_REGISTRY_REPO will be replaced by CI
|
||||||
pull_policy: always
|
pull_policy: always
|
||||||
restart: always
|
restart: always
|
||||||
depends_on:
|
depends_on:
|
||||||
|
@@ -16,8 +16,7 @@
|
|||||||
|
|
||||||
services:
|
services:
|
||||||
htwkalender-data-manager:
|
htwkalender-data-manager:
|
||||||
image: DOCKER_REGISTRY_REPO-data-manager # DOCKER_REGISTRY_REPO will be replaced by CI
|
image: DOCKER_REGISTRY_REPO/data-manager:PROD_TAG # DOCKER_REGISTRY_REPO will be replaced by CI
|
||||||
command: "--http=0.0.0.0:8090 --dir=/htwkalender-data-manager/data/pb_data"
|
|
||||||
pull_policy: always
|
pull_policy: always
|
||||||
restart: always
|
restart: always
|
||||||
volumes:
|
volumes:
|
||||||
@@ -26,7 +25,7 @@ services:
|
|||||||
- "net"
|
- "net"
|
||||||
|
|
||||||
htwkalender-ical:
|
htwkalender-ical:
|
||||||
image: DOCKER_REGISTRY_REPO-ical # DOCKER_REGISTRY_REPO will be replaced by CI
|
image: DOCKER_REGISTRY_REPO/ical:PROD_TAG # DOCKER_REGISTRY_REPO will be replaced by CI
|
||||||
pull_policy: always
|
pull_policy: always
|
||||||
restart: always
|
restart: always
|
||||||
environment:
|
environment:
|
||||||
@@ -37,7 +36,7 @@ services:
|
|||||||
- htwkalender-data-manager
|
- htwkalender-data-manager
|
||||||
|
|
||||||
htwkalender-frontend:
|
htwkalender-frontend:
|
||||||
image: DOCKER_REGISTRY_REPO-frontend # DOCKER_REGISTRY_REPO will be replaced by CI
|
image: DOCKER_REGISTRY_REPO/frontend:PROD_TAG # DOCKER_REGISTRY_REPO will be replaced by CI
|
||||||
pull_policy: always
|
pull_policy: always
|
||||||
restart: always
|
restart: always
|
||||||
depends_on:
|
depends_on:
|
||||||
|
@@ -20,7 +20,6 @@ services:
|
|||||||
dockerfile: ./data-manager/Dockerfile
|
dockerfile: ./data-manager/Dockerfile
|
||||||
context: ./services
|
context: ./services
|
||||||
target: prod
|
target: prod
|
||||||
command: "--http=0.0.0.0:8090 --dir=/htwkalender-data-manager/data/pb_data"
|
|
||||||
ports:
|
ports:
|
||||||
- "8090:8090"
|
- "8090:8090"
|
||||||
- "50051:50051"
|
- "50051:50051"
|
||||||
|
Reference in New Issue
Block a user