48 lines
1.1 KiB
YAML
48 lines
1.1 KiB
YAML
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 <<EOF > .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
|