Commit b3799136 authored by Шаронов Егор Алексеевич's avatar Шаронов Егор Алексеевич
Browse files

Update .gitlab-ci.yml file

parent 0ab5adca
No related merge requests found
Pipeline #172743 passed with stages
in 1 minute and 31 seconds
Showing with 17 additions and 4 deletions
+17 -4
...@@ -3,10 +3,15 @@ stages: ...@@ -3,10 +3,15 @@ stages:
- deploy - deploy
variables: variables:
IMAGE_NAME: $CI_REGISTRY_IMAGE # Адрес реестра, куда пушим образы.
REGISTRY_URL: registry.miem.hse.ru
# Полное имя образа: <registry>/<namespace>/<repository>
IMAGE_NAME: $REGISTRY_URL/edadil/ms/model
# Неймспейс Kubernetes, куда деплоится приложение.
KUBE_NAMESPACE: productassistant KUBE_NAMESPACE: productassistant
before_script: before_script:
# Загружаем kubeconfig из переменной CI/CD
- echo "$KUBECONFIG_DATA" > kubeconfig - echo "$KUBECONFIG_DATA" > kubeconfig
- export KUBECONFIG=$CI_PROJECT_DIR/kubeconfig - export KUBECONFIG=$CI_PROJECT_DIR/kubeconfig
...@@ -15,23 +20,31 @@ build: ...@@ -15,23 +20,31 @@ build:
image: docker:latest image: docker:latest
services: services:
- docker:dind - docker:dind
tags:
- docker
script: script:
# Аутентификация в Docker реестре с использованием переменных, заданных в CI/CD
- docker login -u "$REGISTRY_USER" -p "$REGISTRY_PASSWORD" $REGISTRY_URL
# Сборка образа: указываем путь к Dockerfile (здесь предполагается, что Dockerfile лежит в каталоге deployment)
- docker build -t $IMAGE_NAME:$CI_COMMIT_SHORT_SHA -f deployment/Dockerfile . - docker build -t $IMAGE_NAME:$CI_COMMIT_SHORT_SHA -f deployment/Dockerfile .
# Пушим образ в реестр
- docker push $IMAGE_NAME:$CI_COMMIT_SHORT_SHA - docker push $IMAGE_NAME:$CI_COMMIT_SHORT_SHA
only: only:
- master - master
tags:
- docker # <-- добавляем тег
deploy: deploy:
stage: deploy stage: deploy
image: lachlanevenson/k8s-kubectl:latest image: lachlanevenson/k8s-kubectl:latest
tags: tags:
- docker # <-- добавляем тот же тег, если нужно - docker
script: script:
# Устанавливаем новый тег образа
- export IMAGE_TAG=$CI_COMMIT_SHORT_SHA - export IMAGE_TAG=$CI_COMMIT_SHORT_SHA
# Подставляем новый тег в манифест (предполагается, что в app-deployment.yaml есть placeholder, например, ${IMAGE_TAG})
- envsubst < deployment/k8s/app-deployment.yaml > deployment/k8s/app-deployment-temp.yaml - envsubst < deployment/k8s/app-deployment.yaml > deployment/k8s/app-deployment-temp.yaml
# Создаем неймспейс, если его еще нет
- kubectl apply -f deployment/k8s/namespace.yaml --validate=false - kubectl apply -f deployment/k8s/namespace.yaml --validate=false
# Применяем манифест обновления для приложения в указанном неймспейсе
- kubectl --namespace=$KUBE_NAMESPACE apply -f deployment/k8s/app-deployment-temp.yaml --validate=false - kubectl --namespace=$KUBE_NAMESPACE apply -f deployment/k8s/app-deployment-temp.yaml --validate=false
only: only:
- master - master
......
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment