---
image: docker:18.01.0-ce-git
services:
- docker:18.01.0-ce-dind

stages:
- build
- deploy

variables:
  HOMOLOG_IMAGE: $CI_REGISTRY_IMAGE:$CI_BUILD_REF_NAME-$CI_COMMIT_SHORT_SHA
  RELEASE_IMAGE: $CI_REGISTRY_IMAGE:$CI_BUILD_REF_NAME
  KUBECONFIG: /etc/k8s-config

build to homolog:
  variables:
    GIT_SUBMODULE_STRATEGY: normal
  stage: build
  script:
    - docker login -u gitlab-ci-token -p $CI_JOB_TOKEN $CI_REGISTRY
    - docker pull mapasculturais/mapasculturais:develop
    - docker build -t $HOMOLOG_IMAGE -f compose/production/Dockerfile .
    - docker push $HOMOLOG_IMAGE
  only:
    - /master/
  environment: homolog
  tags:
    - docker

deploy to homolog:
  stage: deploy
  image: hacklab/kubectl:latest
  script:
    - echo ${kube_config} | base64 -d > ${KUBECONFIG}
    - kubectl -n mapas-iberculturaviva-dev --record deployment.apps/web set image deployment.v1.apps/web mapas=$HOMOLOG_IMAGE
  only:
    - /master/
  environment: homolog
  tags:
    - docker


build to production:
  stage: build
  script:
    - docker login -u "gitlab-ci-token" -p "$CI_JOB_TOKEN" $CI_REGISTRY
    - docker pull mapasculturais/mapasculturais:develop
    - docker build -t $RELEASE_IMAGE -f compose/production/Dockerfile .
    - docker tag $RELEASE_IMAGE "$CI_REGISTRY_IMAGE:latest"
    - docker push $RELEASE_IMAGE
    - docker push "$CI_REGISTRY_IMAGE:latest"
  only:
    - tags
  environment: production
  tags:
    - docker

deploy to production:
  stage: deploy
  image: hacklab/kubectl:latest
  script:
    - echo ${kube_hackcloud} | base64 -d > ${KUBECONFIG}
    - kubectl -n ibercultura-mapas-prod --record deployment.apps/mapas set image deployment.apps/mapas mapas=$RELEASE_IMAGE
  only:
    - tags
  environment: production
  tags:
    - docker