stages: - build - deploy-prod variables: DOCKER_HOST: tcp://docker:2375/ image: registry.gitlab.com/sparetimecoder/build-tools build: stage: build image: docker services: - docker:dind script: - docker version - docker build --cache-from $CI_REGISTRY_IMAGE:latest -t $CI_REGISTRY_IMAGE:latest . - docker tag $CI_REGISTRY_IMAGE:latest $CI_REGISTRY_IMAGE:$CI_COMMIT_SHA - docker login -u gitlab-ci-token -p $CI_BUILD_TOKEN $CI_REGISTRY - docker push $CI_REGISTRY_IMAGE:$CI_COMMIT_SHA - docker push $CI_REGISTRY_IMAGE:latest .deploy: &deploy_template before_script: - mkdir -p ~/.kube - echo ${KUBECONFIG_CONTENT} | base64 -d > ~/.kube/config - kubectl config get-contexts - | cat < .buildtools declare -A valid_environments valid_environments=( ["staging"]="--context k8s.unbound.se --namespace staging" ["prod"]="--context k8s.unbound.se --namespace default" ) EOF deploy-to-prod: <<: *deploy_template stage: deploy-prod when: on_success script: - echo Deploy Angus to PROD. - deploy prod environment: name: prod only: - master