Skip to content
Snippets Groups Projects
.gitlab-ci.yml 8.47 KiB
# Functions that should be executed before the build script is run

variables:
  HELM_VERSION: "3.9.3"
  IMAGE_NAME: "df-wiki"
  # dev
  HOST_DEV: 'defense-finder.dev.pasteur.cloud'
  MEILI_HOST_DEV: 'defense-finder-meilisearch.dev.pasteur.cloud'
  # prod
  HOST_PROD: 'defense-finder.pasteur.cloud'
  MEILI_HOST_PROD: 'defense-finder-meilisearch.pasteur.cloud'

  

cache:
  paths:
    - node_modules/
    - .output/public
    

stages:
  - get-data
  - format-data
  - deploy-meilisearch
  - update-meilisearch-indexes
  - get-meili-key
  - build
  - deploy


.docker-login: &docker-login
  - i=0; while [ "$i" -lt 12 ]; do docker info && break; sleep 5; i=$(( i + 1 )) ; done
  - docker login -u "$CI_REGISTRY_USER" -p "$CI_REGISTRY_PASSWORD" $CI_REGISTRY



################ DEPLOY MEILISEARCH #################

.deploy:meilisearch:
  stage: deploy-meilisearch
  image: harbor.pasteur.fr/kube-system/helm-kubectl:$HELM_VERSION
  variables:
    CI_DEBUG_TRACE: "false"
    ENV: development
  before_script:
    - helm dependency update deploy/meilisearch/ 
  script: 
    - >
      helm upgrade --install 
      ${CI_PROJECT_NAME}-${CI_ENVIRONMENT_NAME}-meilisearch 
      ./deploy/meilisearch 
      --namespace=${KUBE_NAMESPACE}
      --set meilisearch.ingress.hosts[0]=${PUBLIC_URL}
      --set meilisearch.environment.MEILI_MASTER_KEY=${MEILI_MASTER_KEY}
      --set env=${ENV:-development}
      --values deploy/meilisearch/values.yaml
      --values deploy/meilisearch/values.${ENV:-development}.yaml
    # wait for it to start
    - MEILI_POD=$(kubectl -n=${KUBE_NAMESPACE} get po -l app.kubernetes.io\/instance=${CI_PROJECT_NAME}-${CI_ENVIRONMENT_NAME}-meilisearch,app.kubernetes.io\/name=meilisearch --output jsonpath='{.items[0].metadata.name}')
    - |
      until kubectl -n=${KUBE_NAMESPACE} wait --for=condition=ready pod ${MEILI_POD} --timeout=1s
      do
        date
        sleep 1
        kubectl -n=${KUBE_NAMESPACE} get po
      done


deploy:meilisearch:dev:
  extends: .deploy:meilisearch