From ac050e22abbdc764c36a991107a36d8d347a5b61 Mon Sep 17 00:00:00 2001 From: Martin Weise <martin.weise@tuwien.ac.at> Date: Mon, 3 Mar 2025 18:54:10 +0100 Subject: [PATCH] Deploy Signed-off-by: Martin Weise <martin.weise@tuwien.ac.at> --- .gitlab-ci.yml | 38 ++++++++++++++++++++++++++++++++++++-- make/rel.mk | 40 ++++++++++++++++++++-------------------- 2 files changed, 56 insertions(+), 22 deletions(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 77ed03fcb1..d4f49d083a 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -36,6 +36,7 @@ stages: - test - docs - release + - deploy - verify - scan @@ -407,12 +408,24 @@ release-images: stage: release image: docker:${DOCKER_VERSION}-dind dependencies: - - test-metadata-service - - test-data-service - test-analyse-service + - test-auth-service-init + - test-data-service + - test-lib + - test-metadata-service + - test-search-service + - test-search-service-init + - test-ui + variables: + BUILD_VERSION: "" only: refs: + - dev - /^release-.*/ + rules: + - if: $CI_COMMIT_REF_NAME == dev + variables: + BUILD_VERSION: "+git.${CI_COMMIT_SHORT_SHA}" before_script: - "docker logout ${CI_REGISTRY_URL}" - "echo ${CI_REGISTRY_PASSWORD} | docker login --username ${CI_REGISTRY_USER} --password-stdin ${CI_REGISTRY_URL}" @@ -527,6 +540,27 @@ verify-dist: script: - "curl -v --output /dev/null --fail https://www.ifs.tuwien.ac.at/infrastructures/dbrepo/${APP_VERSION}/dist.tar.gz" +deploy-staging: + image: docker.io/alpine:${ALPINE_VERSION} + stage: deploy + only: + refs: + - dev + variables: + KUBECONFIG: ./kubecfg + environment: + name: staging/datalab + url: ${CI_ENV_STAGING_URL} + before_script: + - apk add --no-cache helm kubectl make + - echo ${CI_K8S_CONFIG} | base64 -d > ./kubecfg + - make build-helm + - helm -n ${CI_ENV_STAGING_NAMESPACE} uninstall ${CI_ENV_STAGING_RELEASE_NAME} --ignore-not-found + - kubectl -n ${CI_ENV_STAGING_NAMESPACE} delete pvc --all + - echo "${CI_K8S_VALUES}" | base64 -d > ./values.yaml + script: + - helm -n ${CI_ENV_STAGING_NAMESPACE} upgrade --install ${CI_ENV_STAGING_RELEASE_NAME} ./build/dbrepo-${CHART_VERSION}.tgz --create-namespace -f ./values.yaml + scan-sonarqube: image: sonarsource/sonar-scanner-cli:${SONARQUBE_VERSION} stage: scan diff --git a/make/rel.mk b/make/rel.mk index 0c4b2bb193..c98668f08b 100644 --- a/make/rel.mk +++ b/make/rel.mk @@ -2,29 +2,29 @@ .PHONY: tag-images tag-images: build-images ## Tag the docker images. - docker tag dbrepo-analyse-service:latest "${REPOSITORY_URL}/analyse-service:${APP_VERSION}" - docker tag dbrepo-dashboard-service:latest "${REPOSITORY_URL}/dashboard-service:${APP_VERSION}" - docker tag dbrepo-ui:latest "${REPOSITORY_URL}/ui:${APP_VERSION}" - docker tag dbrepo-data-service:latest "${REPOSITORY_URL}/data-service:${APP_VERSION}" - docker tag dbrepo-auth-service-init:latest "${REPOSITORY_URL}/auth-service-init:${APP_VERSION}" - docker tag dbrepo-metadata-service:latest "${REPOSITORY_URL}/metadata-service:${APP_VERSION}" - docker tag dbrepo-search-db:latest "${REPOSITORY_URL}/search-db:${APP_VERSION}" - docker tag dbrepo-search-service:latest "${REPOSITORY_URL}/search-service:${APP_VERSION}" - docker tag dbrepo-search-service-init:latest "${REPOSITORY_URL}/search-service-init:${APP_VERSION}" - docker tag dbrepo-storage-service-init:latest "${REPOSITORY_URL}/storage-service-init:${APP_VERSION}" + docker tag dbrepo-analyse-service:latest "${REPOSITORY_URL}/analyse-service:${APP_VERSION}${BUILD_VERSION}" + docker tag dbrepo-dashboard-service:latest "${REPOSITORY_URL}/dashboard-service:${APP_VERSION}${BUILD_VERSION}" + docker tag dbrepo-ui:latest "${REPOSITORY_URL}/ui:${APP_VERSION}${BUILD_VERSION}" + docker tag dbrepo-data-service:latest "${REPOSITORY_URL}/data-service:${APP_VERSION}${BUILD_VERSION}" + docker tag dbrepo-auth-service-init:latest "${REPOSITORY_URL}/auth-service-init:${APP_VERSION}${BUILD_VERSION}" + docker tag dbrepo-metadata-service:latest "${REPOSITORY_URL}/metadata-service:${APP_VERSION}${BUILD_VERSION}" + docker tag dbrepo-search-db:latest "${REPOSITORY_URL}/search-db:${APP_VERSION}${BUILD_VERSION}" + docker tag dbrepo-search-service:latest "${REPOSITORY_URL}/search-service:${APP_VERSION}${BUILD_VERSION}" + docker tag dbrepo-search-service-init:latest "${REPOSITORY_URL}/search-service-init:${APP_VERSION}${BUILD_VERSION}" + docker tag dbrepo-storage-service-init:latest "${REPOSITORY_URL}/storage-service-init:${APP_VERSION}${BUILD_VERSION}" .PHONY: release-images release-images: tag-images ## Release the docker images. - docker push "${REPOSITORY_URL}/analyse-service:${APP_VERSION}" - docker push "${REPOSITORY_URL}/dashboard-service:${APP_VERSION}" - docker push "${REPOSITORY_URL}/ui:${APP_VERSION}" - docker push "${REPOSITORY_URL}/data-service:${APP_VERSION}" - docker push "${REPOSITORY_URL}/auth-service-init:${APP_VERSION}" - docker push "${REPOSITORY_URL}/search-db:${APP_VERSION}" - docker push "${REPOSITORY_URL}/metadata-service:${APP_VERSION}" - docker push "${REPOSITORY_URL}/search-service:${APP_VERSION}" - docker push "${REPOSITORY_URL}/search-service-init:${APP_VERSION}" - docker push "${REPOSITORY_URL}/storage-service-init:${APP_VERSION}" + docker push "${REPOSITORY_URL}/analyse-service:${APP_VERSION}${BUILD_VERSION}" + docker push "${REPOSITORY_URL}/dashboard-service:${APP_VERSION}${BUILD_VERSION}" + docker push "${REPOSITORY_URL}/ui:${APP_VERSION}${BUILD_VERSION}" + docker push "${REPOSITORY_URL}/data-service:${APP_VERSION}${BUILD_VERSION}" + docker push "${REPOSITORY_URL}/auth-service-init:${APP_VERSION}${BUILD_VERSION}" + docker push "${REPOSITORY_URL}/search-db:${APP_VERSION}${BUILD_VERSION}" + docker push "${REPOSITORY_URL}/metadata-service:${APP_VERSION}${BUILD_VERSION}" + docker push "${REPOSITORY_URL}/search-service:${APP_VERSION}${BUILD_VERSION}" + docker push "${REPOSITORY_URL}/search-service-init:${APP_VERSION}${BUILD_VERSION}" + docker push "${REPOSITORY_URL}/storage-service-init:${APP_VERSION}${BUILD_VERSION}" .PHONY: release-helm release-helm: gen-helm-doc ## Release the DBRepo and DBRepo MariaDB Galera Helm charts. -- GitLab