Files
@ 74dc779999c4
Branch filter:
Location: symposion_app/.gitlab-ci.yml - annotation
74dc779999c4
6.5 KiB
text/x-yaml
WIP for rego form, 2
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 | de17d506a485 304436881bff de17d506a485 de17d506a485 df389b9ce518 d7065ee43d31 de17d506a485 d7065ee43d31 d7065ee43d31 d7065ee43d31 d7065ee43d31 df389b9ce518 d7065ee43d31 d7065ee43d31 df389b9ce518 d7065ee43d31 df389b9ce518 d7065ee43d31 df389b9ce518 d7065ee43d31 d7065ee43d31 d7065ee43d31 db1f3f979243 db1f3f979243 db1f3f979243 db1f3f979243 db1f3f979243 db1f3f979243 db1f3f979243 db1f3f979243 db1f3f979243 db1f3f979243 7b58bfafa6c3 db1f3f979243 db1f3f979243 db1f3f979243 06eae1df078e de17d506a485 06eae1df078e 71a612baa4e3 de17d506a485 304436881bff de17d506a485 de17d506a485 de17d506a485 de17d506a485 0231f3ff468f 67812970161e 67812970161e de17d506a485 de17d506a485 65bed40fafa0 f0d14754a764 36d079f56b96 de17d506a485 0c58a9432391 0c58a9432391 0c58a9432391 0c58a9432391 0c58a9432391 0c58a9432391 0c58a9432391 0c58a9432391 0c58a9432391 0c58a9432391 2e77bb2d6045 2e77bb2d6045 2e77bb2d6045 2e77bb2d6045 0c58a9432391 0c58a9432391 11f4a05011f7 11f4a05011f7 0c58a9432391 0c58a9432391 0c58a9432391 0c58a9432391 0c58a9432391 0c58a9432391 0c58a9432391 0c58a9432391 0c58a9432391 0c58a9432391 0c58a9432391 0c58a9432391 0c58a9432391 0c58a9432391 0c58a9432391 0c58a9432391 0c58a9432391 0c58a9432391 6e35fec262cc 6e35fec262cc 6e35fec262cc c07dc66b3dbf c07dc66b3dbf c07dc66b3dbf c07dc66b3dbf 304436881bff 6e35fec262cc 3534a8243c8b 6e35fec262cc de17d506a485 bbd277c4625b 6e35fec262cc 0c58a9432391 3d5ed5c5160a 3d5ed5c5160a 3d5ed5c5160a 3d5ed5c5160a 3d5ed5c5160a 3d5ed5c5160a 3d5ed5c5160a 3d5ed5c5160a f0d14754a764 36d079f56b96 f0d14754a764 3d5ed5c5160a 3d5ed5c5160a 3d5ed5c5160a 3d5ed5c5160a 3d5ed5c5160a 0c58a9432391 de17d506a485 0c58a9432391 3d5ed5c5160a 3d5ed5c5160a 3d5ed5c5160a 3d5ed5c5160a 3d5ed5c5160a 3d5ed5c5160a 3d5ed5c5160a 3d5ed5c5160a f0d14754a764 36d079f56b96 3d5ed5c5160a 3d5ed5c5160a 3d5ed5c5160a 3d5ed5c5160a 3d5ed5c5160a 3d5ed5c5160a 3d5ed5c5160a de17d506a485 0c58a9432391 6d5090043306 6d5090043306 6d5090043306 6d5090043306 6d5090043306 6d5090043306 6d5090043306 304436881bff 6d5090043306 6d5090043306 6d5090043306 6d5090043306 de17d506a485 6d5090043306 6d5090043306 4570eb16650a 75a4bf673f3e 75a4bf673f3e 75a4bf673f3e 75a4bf673f3e 75a4bf673f3e 75a4bf673f3e 75a4bf673f3e 75a4bf673f3e 75a4bf673f3e 75a4bf673f3e 75a4bf673f3e 4570eb16650a 4570eb16650a 4570eb16650a 75a4bf673f3e 75a4bf673f3e 911b12564b5e 06eae1df078e 06eae1df078e bbd277c4625b 4570eb16650a de17d506a485 4570eb16650a de17d506a485 | variables:
CONTAINER_IMAGE_2019: "asia.gcr.io/linuxconfsydney/symposion_app_2019"
DOCKER_DRIVER: overlay2
build_image:
image: docker:git
stage: build
services:
- docker:dind
script:
- docker build -f docker/Dockerfile -t asia.gcr.io/linuxconfsydney/symposion_app:$CI_COMMIT_SHA .
- 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 .
- docker login -u _json_key -p "$GOOGLE_KEY" https://asia.gcr.io
- docker push asia.gcr.io/linuxconfsydney/symposion_app:$CI_COMMIT_SHA
- docker push asia.gcr.io/linuxconfsydney/symposion_app_dev:$CI_COMMIT_SHA
- docker tag asia.gcr.io/linuxconfsydney/symposion_app:$CI_COMMIT_SHA asia.gcr.io/linuxconfsydney/symposion_app:latest
- docker tag asia.gcr.io/linuxconfsydney/symposion_app_dev:$CI_COMMIT_SHA asia.gcr.io/linuxconfsydney/symposion_app_dev:latest
- docker push asia.gcr.io/linuxconfsydney/symposion_app:latest
- docker push asia.gcr.io/linuxconfsydney/symposion_app_dev:latest
only:
- master
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
- kubectl --namespace=rego-prod set image deployment/symposion-app symposion-app=asia.gcr.io/linuxconfsydney/symposion_app:$CI_COMMIT_SHA
when: manual
only:
- master
environment:
name: 2019/prod
url: https://rego.linux.conf.au
build_review_deployment:
image: docker:git
services:
- docker:dind
stage: build
script:
- 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
only:
- /^dev\/.*$/
artifacts:
paths:
- k8s/deployment.json
- k8s/ingress.json
- k8s/certificate.json
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
- 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
except:
- "2019"
- "master"
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:
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-dev --user=gitlab-sa
- kubectl config use-context cluster
- kubectl --token "${GL_KUBE_TOKEN}" set image deployment/symposion-app symposion-app="${CONTAINER_IMAGE_2019}"_dev:$CI_COMMIT_SHA
only:
- dev/2019
environment:
name: 2019/dev
url: https://dev.lca2019.org
2019_review-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=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}" apply -f k8s/ingress.json
- kubectl --token "${GL_KUBE_TOKEN}" apply -f k8s/certificate.json
only:
- /^dev\/.*$/
environment:
name: 2019/dev/${CI_COMMIT_REF_SLUG}
url: https://${CI_COMMIT_REF_SLUG}.dev.lca2019.org
on_stop: 2019_review-stop-deploy
2019_review-stop-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=rego-review --user=rego-dev/gitlab-sa
- kubectl config use-context cluster
- kubectl --token "${GL_KUBE_TOKEN}" delete -f k8s/deployment.json
- kubectl --token "${GL_KUBE_TOKEN}" delete -f k8s/ingress.json
- kubectl --token "${GL_KUBE_TOKEN}" delete -f k8s/certificate.json
only:
- /^dev\/.*$/
when: manual
environment:
name: 2019/dev/${CI_COMMIT_REF_SLUG}
url: https://${CI_COMMIT_REF_SLUG}.dev.lca2019.org
action: stop
2019_staging-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-staging --user=gitlab-ci
- kubectl config use-context cluster
- kubectl --token "${GL_KUBE_TOKEN}" set image deployment/symposion-app symposion-app="${CONTAINER_IMAGE_2019}"_dev:$CI_COMMIT_SHA
when: manual
only:
- dev/2019
environment:
name: 2019/staging
url: https://staging.lca2019.org
.docs_template: &sphinx
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
pages:
<<: *sphinx
only:
- master
- "2019"
environment:
name: docs
url: https://laconfdev.gitlab.io/symposion_app/
build_sphinx:
<<: *sphinx
stage: build
|