Raw File
.gitlab-ci.yml
image: docker:stable

stages:
  - build
  - deploy

variables:
  BACKEND_IMAGE_NAME: $CI_REGISTRY/scpomedialab/hyphe_backend
  CRAWLER_IMAGE_NAME: $CI_REGISTRY/scpomedialab/hyphe_crawler
  FRONTEND_IMAGE_NAME: $CI_REGISTRY/scpomedialab/hyphe_frontend

before_script:
  - VERSION=$(echo $CI_COMMIT_TAG | sed -nre 's/^v([0-9.]+)$/\1/p')
  - if [ -n "${VERSION}" ]; then IMAGE_TAG=${VERSION}; else IMAGE_TAG=${CI_COMMIT_REF_SLUG}; fi

build_backend_image:
  stage: build
  script:
    - docker build -t $BACKEND_IMAGE_NAME:$IMAGE_TAG -f Dockerfile .
    - docker login -u "$CI_REGISTRY_USER" -p "$CI_REGISTRY_PASSWORD"
    - docker push $BACKEND_IMAGE_NAME:$IMAGE_TAG
  environment:
    name: $CI_COMMIT_REF_SLUG
  only:
    - staging
    - prod
    - tags

build_crawler_image:
  stage: build
  script:
    - docker build -t $CRAWLER_IMAGE_NAME:$IMAGE_TAG -f ./hyphe_backend/crawler/Dockerfile ./hyphe_backend/crawler/
    - docker login -u "$CI_REGISTRY_USER" -p "$CI_REGISTRY_PASSWORD"
    - docker push $CRAWLER_IMAGE_NAME:$IMAGE_TAG
  environment:
    name: $CI_COMMIT_REF_SLUG
  only:
    - staging
    - prod
    - tags

build_frontend_image:
  stage: build
  script:
    - docker build -t $FRONTEND_IMAGE_NAME:$IMAGE_TAG -f ./hyphe_frontend/Dockerfile ./hyphe_frontend/
    - docker login -u "$CI_REGISTRY_USER" -p "$CI_REGISTRY_PASSWORD"
    - docker push $FRONTEND_IMAGE_NAME:$IMAGE_TAG
  environment:
    name: $CI_COMMIT_REF_SLUG
  only:
    - staging
    - prod
    - tags

deploy:
  image:
    name: jrisp/kubehelper:latest
    entrypoint: [""]
  stage: deploy
  script:
    - kubectl config set-cluster k8s --server="$KUBE_URL" --certificate-authority="$KUBE_CA_PEM_FILE"
    - kubectl config set-credentials gitlab-admin --token="$KUBE_TOKEN"
    - kubectl config set-context default --cluster=k8s --user=gitlab-admin
    - kubectl config use-context default
    - kubectl -n $STACK rollout restart deployment backend
    - kubectl -n $STACK rollout restart deployment crawler
    - kubectl -n $STACK rollout restart deployment frontend
  environment:
    name: $CI_COMMIT_REF_SLUG
  only:
   - staging
   - prod
back to top