--- image: docker:18.01.0-ce-git services: - docker:18.01.0-ce-dind stages: - build - deploy variables: DJANGO_RELEASE_IMAGE: $CI_REGISTRY_IMAGE/django:$CI_BUILD_REF_NAME NGINX_RELEASE_IMAGE: $CI_REGISTRY_IMAGE/nginx:$CI_BUILD_REF_NAME DJANGO_HOMOLOG_IMAGE: $CI_REGISTRY_IMAGE/django:$CI_BUILD_REF_NAME-$CI_COMMIT_SHORT_SHA NGINX_hOMOLOG_IMAGE: $CI_REGISTRY_IMAGE/nginx:$CI_BUILD_REF_NAME-$CI_COMMIT_SHORT_SHA KUBECONFIG: /etc/k8s-config ########## ## Homolog ########## build to homolog: stage: build script: - docker login -u "gitlab-ci-token" -p "$CI_JOB_TOKEN" $CI_REGISTRY - docker build -f compose/production/Dockerfile --target django -t $DJANGO_HOMOLOG_IMAGE . - docker push $DJANGO_HOMOLOG_IMAGE - docker build -f compose/production/Dockerfile --target nginx -t $NGINX_HOMOLOG_IMAGE . - docker push $NGINX_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 ctb-escola-dev --record deployment.apps/django set image deployment.v1.apps/django django=$DJANGO_HOMOLOG_IMAGE nginx=$NGINX_HOMOLOG_IMAGE only: - /master/ environment: homolog variables: GIT_STRATEGY: none tags: - docker ############# ## Production ############# build to production: stage: build script: - docker login -u "gitlab-ci-token" -p "$CI_JOB_TOKEN" $CI_REGISTRY - docker build -f compose/production/Dockerfile --target django -t $DJANGO_RELEASE_IMAGE . - docker tag $DJANGO_RELEASE_IMAGE "$CI_REGISTRY_IMAGE/django:latest" - docker push $DJANGO_RELEASE_IMAGE - docker push "$CI_REGISTRY_IMAGE/django:latest" - docker build -f compose/production/Dockerfile --target nginx -t $NGINX_RELEASE_IMAGE . - docker tag $NGINX_RELEASE_IMAGE "$CI_REGISTRY_IMAGE/nginx:latest" - docker push $NGINX_RELEASE_IMAGE - docker push "$CI_REGISTRY_IMAGE/nginx:latest" only: - tags environment: production tags: - docker deploy to production: stage: deploy image: hacklab/kubectl:latest script: - echo ${kube_config} | base64 -d > ${KUBECONFIG} - kubectl -n ctb-escola-prod --record deployment.apps/django set image deployment.v1.apps/django django=$DJANGO_RELEASE_IMAGE nginx=$NGINX_RELEASE_IMAGE only: - tags environment: production variables: GIT_STRATEGY: none tags: - docker