2018-06-16 09:05:37 +00:00
|
|
|
variables:
|
2018-06-16 13:23:15 +00:00
|
|
|
CONTAINER_IMAGE_2019: "asia.gcr.io/linuxconfsydney/symposion_app_2019"
|
2018-06-16 09:05:37 +00:00
|
|
|
DOCKER_DRIVER: overlay2
|
|
|
|
|
2017-10-04 12:56:28 +00:00
|
|
|
build_image:
|
2017-10-04 12:40:47 +00:00
|
|
|
image: docker:git
|
2018-06-16 09:05:37 +00:00
|
|
|
stage: build
|
2017-10-04 12:40:47 +00:00
|
|
|
services:
|
|
|
|
- docker:dind
|
|
|
|
script:
|
|
|
|
- docker build -f docker/Dockerfile -t asia.gcr.io/linuxconfsydney/symposion_app:$CI_COMMIT_SHA .
|
2017-10-04 12:56:28 +00:00
|
|
|
- docker build --build-arg CI_COMMIT_SHA=$CI_COMMIT_SHA -f docker/Dockerfile.dev -t asia.gcr.io/linuxconfsydney/symposion_app_dev:$CI_COMMIT_SHA .
|
2017-10-04 12:40:47 +00:00
|
|
|
- docker login -u _json_key -p "$GOOGLE_KEY" https://asia.gcr.io
|
|
|
|
- docker push asia.gcr.io/linuxconfsydney/symposion_app:$CI_COMMIT_SHA
|
2017-10-04 12:56:28 +00:00
|
|
|
- docker push asia.gcr.io/linuxconfsydney/symposion_app_dev:$CI_COMMIT_SHA
|
2017-10-04 12:40:47 +00:00
|
|
|
- docker tag asia.gcr.io/linuxconfsydney/symposion_app:$CI_COMMIT_SHA asia.gcr.io/linuxconfsydney/symposion_app:latest
|
2017-10-04 12:56:28 +00:00
|
|
|
- docker tag asia.gcr.io/linuxconfsydney/symposion_app_dev:$CI_COMMIT_SHA asia.gcr.io/linuxconfsydney/symposion_app_dev:latest
|
2017-10-04 12:40:47 +00:00
|
|
|
- docker push asia.gcr.io/linuxconfsydney/symposion_app:latest
|
2017-10-04 12:56:28 +00:00
|
|
|
- docker push asia.gcr.io/linuxconfsydney/symposion_app_dev:latest
|
2017-10-04 12:40:47 +00:00
|
|
|
only:
|
|
|
|
- master
|
|
|
|
|
2017-08-07 01:30:11 +00:00
|
|
|
k8s-prod-deploy:
|
|
|
|
image: google/cloud-sdk
|
|
|
|
stage: deploy
|
|
|
|
script:
|
|
|
|
- echo "$GOOGLE_KEY" > key.json
|
|
|
|
- gcloud auth activate-service-account --key-file key.json
|
|
|
|
- gcloud config set compute/zone australia-southeast1-b
|
|
|
|
- gcloud config set project linuxconfsydney
|
|
|
|
- gcloud config set container/use_client_certificate True
|
|
|
|
- gcloud container clusters get-credentials lca02
|
2017-08-08 08:35:07 +00:00
|
|
|
- kubectl --namespace=rego-prod set image deployment/symposion-app symposion-app=asia.gcr.io/linuxconfsydney/symposion_app:$CI_COMMIT_SHA
|
2017-08-07 01:30:11 +00:00
|
|
|
when: manual
|
|
|
|
only:
|
|
|
|
- master
|
2017-10-13 23:32:46 +00:00
|
|
|
environment:
|
2018-06-16 09:05:37 +00:00
|
|
|
name: 2019/prod
|
2017-10-13 23:32:46 +00:00
|
|
|
url: https://rego.linux.conf.au
|
2017-08-16 03:43:30 +00:00
|
|
|
|
2018-06-16 09:05:37 +00:00
|
|
|
build_review_deployment:
|
2018-06-16 13:23:15 +00:00
|
|
|
image: docker:git
|
2018-06-16 09:05:37 +00:00
|
|
|
services:
|
|
|
|
- docker:dind
|
|
|
|
stage: build
|
|
|
|
script:
|
2018-06-24 13:00:40 +00:00
|
|
|
- docker run -v "${PWD}"/k8s:/src sparkprime/jsonnet /src/deployment_template.jsonnet --tla-str slug="${CI_COMMIT_REF_SLUG}" --tla-str sha="${CI_COMMIT_SHA}" -m /src
|
2018-07-01 16:06:16 +00:00
|
|
|
only:
|
|
|
|
- /^dev\/.*$/
|
2018-06-16 09:05:37 +00:00
|
|
|
artifacts:
|
|
|
|
paths:
|
2018-06-16 15:19:52 +00:00
|
|
|
- k8s/deployment.json
|
|
|
|
- k8s/ingress-patch.json
|
2018-06-24 11:05:48 +00:00
|
|
|
- k8s/certificate-patch.json
|
2018-06-16 09:05:37 +00:00
|
|
|
|
2018-07-01 15:54:59 +00:00
|
|
|
build_2019_image:
|
|
|
|
image: docker:git
|
|
|
|
stage: build
|
|
|
|
services:
|
|
|
|
- docker:dind
|
|
|
|
script:
|
|
|
|
- docker login -u _json_key -p "$GOOGLE_KEY" https://asia.gcr.io
|
|
|
|
- docker pull "${CONTAINER_IMAGE_2019}":latest || true
|
|
|
|
- docker build --cache-from "${CONTAINER_IMAGE_2019}":latest -f docker/Dockerfile -t "${CONTAINER_IMAGE_2019}":$CI_COMMIT_SHA .
|
|
|
|
- docker push "${CONTAINER_IMAGE_2019}":$CI_COMMIT_SHA
|
2018-07-01 16:00:11 +00:00
|
|
|
- docker build --build-arg CI_COMMIT_SHA=$CI_COMMIT_SHA -f docker/Dockerfile.dev -t "${CONTAINER_IMAGE_2019}"_dev:$CI_COMMIT_SHA .
|
|
|
|
- docker push "${CONTAINER_IMAGE_2019}"_dev:$CI_COMMIT_SHA
|
|
|
|
- docker tag "${CONTAINER_IMAGE_2019}"_dev:$CI_COMMIT_SHA "${CONTAINER_IMAGE_2019}"_dev:$CI_COMMIT_REF_SLUG
|
|
|
|
- docker push "${CONTAINER_IMAGE_2019}"_dev:$CI_COMMIT_REF_SLUG
|
2018-07-01 15:54:59 +00:00
|
|
|
except:
|
|
|
|
- "2019"
|
2018-07-01 16:10:05 +00:00
|
|
|
- "master"
|
|
|
|
|
2018-07-01 15:54:59 +00:00
|
|
|
|
|
|
|
2019-prod-deploy:
|
|
|
|
image: google/cloud-sdk
|
|
|
|
stage: deploy
|
|
|
|
script:
|
|
|
|
- echo "${CA_CERT}" > cert.crt
|
|
|
|
- kubectl config set-cluster cluster --server="${KUBE_SERVER}" --embed-certs=true --certificate-authority=cert.crt
|
|
|
|
- kubectl config set-context cluster --cluster=cluster --namespace=lca2019-prod --user=gitlab-ci
|
|
|
|
- kubectl config use-context cluster
|
|
|
|
- kubectl --token "${GL_KUBE_TOKEN}" set image deployment/symposion-app symposion-app="${CONTAINER_IMAGE_2019}":$CI_COMMIT_SHA
|
|
|
|
only:
|
|
|
|
- "2019"
|
|
|
|
when: manual
|
|
|
|
environment:
|
|
|
|
name: 2019/prod
|
|
|
|
url: https://2019.linux.conf.au
|
|
|
|
|
|
|
|
2019_dev-deploy:
|
2018-04-18 21:30:02 +00:00
|
|
|
image: google/cloud-sdk
|
|
|
|
stage: deploy
|
|
|
|
script:
|
2018-05-26 04:47:19 +00:00
|
|
|
- echo "${CA_CERT}" > cert.crt
|
|
|
|
- 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
|
2018-06-16 13:23:15 +00:00
|
|
|
- kubectl --token "${GL_KUBE_TOKEN}" set image deployment/symposion-app symposion-app="${CONTAINER_IMAGE_2019}"_dev:$CI_COMMIT_SHA
|
2018-04-18 21:30:02 +00:00
|
|
|
only:
|
2018-06-16 02:05:23 +00:00
|
|
|
- dev/2019
|
2018-04-18 21:30:02 +00:00
|
|
|
environment:
|
2018-06-16 09:05:37 +00:00
|
|
|
name: 2019/dev
|
2018-05-26 01:43:25 +00:00
|
|
|
url: https://dev.lca2019.org
|
2018-04-18 21:30:02 +00:00
|
|
|
|
2018-07-01 15:54:59 +00:00
|
|
|
2019_review-deploy:
|
2018-06-24 04:30:13 +00:00
|
|
|
image: google/cloud-sdk
|
|
|
|
stage: deploy
|
|
|
|
script:
|
|
|
|
- echo "${CA_CERT}" > cert.crt
|
|
|
|
- kubectl config set-cluster cluster --server="${KUBE_SERVER}" --embed-certs=true --certificate-authority=cert.crt
|
|
|
|
- kubectl config set-context cluster --cluster=cluster --namespace=rego-review --user=rego-dev/gitlab-sa
|
|
|
|
- kubectl config use-context cluster
|
|
|
|
- kubectl --token "${GL_KUBE_TOKEN}" apply -f k8s/deployment.json
|
|
|
|
- kubectl --token "${GL_KUBE_TOKEN}" describe ingress | grep "${CI_COMMIT_REF_SLUG}" || kubectl --token "${GL_KUBE_TOKEN}" patch ingress symposion-app-ingress -p "$(cat k8s/ingress-patch.json)" --type json
|
2018-06-24 11:05:48 +00:00
|
|
|
- kubectl --token "${GL_KUBE_TOKEN}" describe certificate | grep "${CI_COMMIT_REF_SLUG}" || kubectl --token "${GL_KUBE_TOKEN}" patch certificate dev-lca2019-org -p "$(cat k8s/certificate-patch.json)" --type json
|
2018-06-24 04:30:13 +00:00
|
|
|
only:
|
|
|
|
- /^dev\/.*$/
|
|
|
|
environment:
|
|
|
|
name: 2019/dev/${CI_COMMIT_REF_SLUG}
|
|
|
|
url: https://${CI_COMMIT_REF_SLUG}.dev.lca2019.org
|
2018-07-01 15:54:59 +00:00
|
|
|
on_stop: 2019_review-stop-deploy
|
2018-06-16 09:05:37 +00:00
|
|
|
|
2018-07-01 15:54:59 +00:00
|
|
|
2019_review-stop-deploy:
|
2018-06-24 04:30:13 +00:00
|
|
|
image: google/cloud-sdk
|
|
|
|
stage: deploy
|
|
|
|
script:
|
|
|
|
- echo "${CA_CERT}" > cert.crt
|
|
|
|
- kubectl config set-cluster cluster --server="${KUBE_SERVER}" --embed-certs=true --certificate-authority=cert.crt
|
|
|
|
- kubectl config set-context cluster --cluster=cluster --namespace=rego-review --user=rego-dev/gitlab-sa
|
|
|
|
- kubectl config use-context cluster
|
|
|
|
- kubectl --token "${GL_KUBE_TOKEN}" delete -f k8s/deployment.json
|
|
|
|
only:
|
|
|
|
- /^dev\/.*$/
|
|
|
|
when: manual
|
|
|
|
environment:
|
|
|
|
name: 2019/dev/${CI_COMMIT_REF_SLUG}
|
|
|
|
url: https://${CI_COMMIT_REF_SLUG}.dev.lca2019.org
|
|
|
|
action: stop
|
2018-06-16 09:05:37 +00:00
|
|
|
|
2018-07-01 15:54:59 +00:00
|
|
|
2019_staging-deploy:
|
2018-06-10 09:12:14 +00:00
|
|
|
image: google/cloud-sdk
|
|
|
|
stage: deploy
|
|
|
|
script:
|
|
|
|
- echo "${CA_CERT}" > cert.crt
|
|
|
|
- kubectl config set-cluster cluster --server="${KUBE_SERVER}" --embed-certs=true --certificate-authority=cert.crt
|
|
|
|
- kubectl config set-context cluster --cluster=cluster --namespace=lca2019-staging --user=gitlab-ci
|
|
|
|
- kubectl config use-context cluster
|
2018-06-16 13:23:15 +00:00
|
|
|
- kubectl --token "${GL_KUBE_TOKEN}" set image deployment/symposion-app symposion-app="${CONTAINER_IMAGE_2019}"_dev:$CI_COMMIT_SHA
|
2018-06-10 09:12:14 +00:00
|
|
|
when: manual
|
|
|
|
only:
|
|
|
|
- dev/2019
|
|
|
|
environment:
|
2018-06-16 09:05:37 +00:00
|
|
|
name: 2019/staging
|
2018-06-10 09:12:14 +00:00
|
|
|
url: https://staging.lca2019.org
|
|
|
|
|
2017-10-15 06:20:36 +00:00
|
|
|
.docs_template: &sphinx
|
2017-09-20 10:47:27 +00:00
|
|
|
image: alpine
|
|
|
|
script:
|
|
|
|
- apk --no-cache add py2-pip python-dev make
|
|
|
|
- pip install sphinx
|
|
|
|
- cd docs
|
|
|
|
- make html
|
|
|
|
- cd ..
|
|
|
|
- mv docs/_build/html public
|
|
|
|
artifacts:
|
|
|
|
paths:
|
|
|
|
- public
|
2017-10-15 06:20:36 +00:00
|
|
|
|
|
|
|
pages:
|
|
|
|
<<: *sphinx
|
2017-09-20 10:47:27 +00:00
|
|
|
only:
|
|
|
|
- master
|
2018-07-01 16:07:38 +00:00
|
|
|
- "2019"
|
2017-10-13 23:32:46 +00:00
|
|
|
environment:
|
|
|
|
name: docs
|
2018-05-26 01:43:25 +00:00
|
|
|
url: https://laconfdev.gitlab.io/symposion_app/
|
2017-10-15 06:20:36 +00:00
|
|
|
|
2018-06-16 09:05:37 +00:00
|
|
|
build_sphinx:
|
2017-10-15 06:20:36 +00:00
|
|
|
<<: *sphinx
|
2018-06-16 09:05:37 +00:00
|
|
|
stage: build
|