Files @ 6a18824aa354
Branch filter:

Location: symposion_app/.gitlab-ci.yml - annotation

Tobias Schulmann
Link fixes on static pages
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
de17d506a485
de17d506a485
65bed40fafa0
65bed40fafa0
81db7ff00d7b
de17d506a485
bbd277c4625b
71a612baa4e3
de17d506a485
71a612baa4e3
71a612baa4e3
71a612baa4e3
6e35fec262cc
304436881bff
304436881bff
304436881bff
304436881bff
304436881bff
304436881bff
0231f3ff468f
c16989d00629
c16989d00629
6e35fec262cc
bbd277c4625b
6e35fec262cc
6e35fec262cc
6e35fec262cc
c07dc66b3dbf
c07dc66b3dbf
c07dc66b3dbf
c07dc66b3dbf
304436881bff
6e35fec262cc
3534a8243c8b
6e35fec262cc
de17d506a485
bbd277c4625b
6e35fec262cc
3d5ed5c5160a
3d5ed5c5160a
3d5ed5c5160a
3d5ed5c5160a
3d5ed5c5160a
3d5ed5c5160a
3d5ed5c5160a
3d5ed5c5160a
3d5ed5c5160a
3d5ed5c5160a
81db7ff00d7b
3d5ed5c5160a
3d5ed5c5160a
3d5ed5c5160a
3d5ed5c5160a
3d5ed5c5160a
3d5ed5c5160a
de17d506a485
3d5ed5c5160a
3d5ed5c5160a
3d5ed5c5160a
3d5ed5c5160a
3d5ed5c5160a
3d5ed5c5160a
3d5ed5c5160a
3d5ed5c5160a
3d5ed5c5160a
3d5ed5c5160a
3d5ed5c5160a
3d5ed5c5160a
3d5ed5c5160a
3d5ed5c5160a
3d5ed5c5160a
3d5ed5c5160a
de17d506a485
6d5090043306
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
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
  artifacts:
    paths:
    - k8s/deployment.json
    - k8s/ingress-patch.json
    - k8s/certificate-patch.json

build_2019_dev_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}"_dev:latest || true
    - docker build --cache-from "${CONTAINER_IMAGE_2019}"_dev:latest -f docker/Dockerfile -t "${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}":$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:
    - master

k8s-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

k8s-2019_dev_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}" 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
  - 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
  only:
  - /^dev\/.*$/
  environment:
    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:
  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

k8s-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
  environment:
    name: docs
    url: https://laconfdev.gitlab.io/symposion_app/

build_sphinx:
  <<: *sphinx
  stage: build