variables:
2019_CONTAINER_IMAGE=asia.gcr.io/linuxconfsydney/symposion_app_2019
DOCKER_DRIVER: overlay2
build_image:
image: docker:git
stage: build
services:
- docker:dind
script:
@@ -30,21 +35,36 @@ k8s-prod-deploy:
only:
- master
environment:
name: prod
name: 2019/prod
url: https://rego.linux.conf.au
build_review_deployment:
image: sparkprime/jsonnet
- docker run -v ${PWD}/k8s:/src sparkprime/jsonnet /src/deployment_template.jsonnet --tla-str slug="${CI_COMMIT_REF_SLUG}" > ${CI_COMMIT_REF_SLUG}.json
artifacts:
paths:
- ${CI_COMMIT_REF_SLUG}.json
build_2019_dev_image:
- docker build -f docker/Dockerfile -t asia.gcr.io/linuxconfsydney/symposion_app_2019:$CI_COMMIT_SHA .
- docker build --build-arg CI_COMMIT_SHA=$CI_COMMIT_SHA -f docker/Dockerfile.dev -t asia.gcr.io/linuxconfsydney/symposion_app_2019_dev:$CI_COMMIT_SHA .
- docker login -u _json_key -p "$GOOGLE_KEY" https://asia.gcr.io
- docker push asia.gcr.io/linuxconfsydney/symposion_app_2019:$CI_COMMIT_SHA
- docker push asia.gcr.io/linuxconfsydney/symposion_app_2019_dev:$CI_COMMIT_SHA
- docker tag asia.gcr.io/linuxconfsydney/symposion_app_2019_dev:$CI_COMMIT_SHA asia.gcr.io/linuxconfsydney/symposion_app_2019_dev:latest
- docker push asia.gcr.io/linuxconfsydney/symposion_app_2019_dev:latest
- docker pull "${2019_CONTAINER_IMAGE}"_dev:latest || true
- docker build --cache-from "${2019_CONTAINER_IMAGE}"_dev:latest -f docker/Dockerfile -t "${2019_CONTAINER_IMAGE}":$CI_COMMIT_SHA .
- docker build --build-arg CI_COMMIT_SHA=$CI_COMMIT_SHA -f docker/Dockerfile.dev -t "${2019_CONTAINER_IMAGE}"_dev:$CI_COMMIT_SHA .
- docker push "${2019_CONTAINER_IMAGE}":$CI_COMMIT_SHA
- docker push "${2019_CONTAINER_IMAGE}"_dev:$CI_COMMIT_SHA
- docker tag "${2019_CONTAINER_IMAGE}"_dev:$CI_COMMIT_SHA "${2019_CONTAINER_IMAGE}"_dev:latest
- docker tag "${2019_CONTAINER_IMAGE}"_dev:$CI_COMMIT_SHA "${2019_CONTAINER_IMAGE}"_dev:$CI_COMMIT_REF_SLUG
- docker push "${2019_CONTAINER_IMAGE}"_dev:latest
- docker push "${2019_CONTAINER_IMAGE}"_dev:${CI_COMMIT_REF_SLUG}
except:
@@ -56,14 +76,46 @@ k8s-2019_dev-deploy:
- kubectl config set-cluster cluster --server="${KUBE_SERVER}" --embed-certs=true --certificate-authority=cert.crt
- kubectl config set-context cluster --cluster=cluster --namespace=rego-dev --user=gitlab-sa
- kubectl config use-context cluster
- kubectl --token "${GL_KUBE_TOKEN}" set image deployment/symposion-app symposion-app=asia.gcr.io/linuxconfsydney/symposion_app_2019_dev:$CI_COMMIT_SHA
- kubectl --token "${GL_KUBE_TOKEN}" set image deployment/symposion-app symposion-app="${2019_CONTAINER_IMAGE}"_dev:$CI_COMMIT_SHA
- dev/2019
- dev/*
name: dev_2019
name: 2019/dev
url: https://dev.lca2019.org
k8s-2019_dev_review-deploy:
image: google/cloud-sdk
stage: deploy
- echo "${CA_CERT}" > cert.crt
- kubectl --token "${GL_KUBE_TOKEN}" apply -f ${CI_COMMIT_REF_SLUG}.json
- /^dev\/.*$/
name: 2019/dev/${CI_COMMIT_REF_SLUG}
url: https://${CI_COMMIT_REF_SLUG}.dev.lca2019.org
on_stop: k8s-2019_dev_review-stop-deploy
k8s-2019_dev_review-stop-deploy:
- kubectl --token "${GL_KUBE_TOKEN}" delete -f ${CI_COMMIT_REF_SLUG}.json
when: manual
action: stop
k8s-2019_staging-deploy:
@@ -72,12 +124,12 @@ k8s-2019_staging-deploy:
- kubectl config set-context cluster --cluster=cluster --namespace=lca2019-staging --user=gitlab-ci
name: staging
name: 2019/staging
url: https://staging.lca2019.org
.docs_template: &sphinx
@@ -101,6 +153,6 @@ pages:
name: docs
url: https://laconfdev.gitlab.io/symposion_app/
test_sphinx:
build_sphinx:
<<: *sphinx
stage: test