Files @ b833b7d8695a
Branch filter:

Location: symposion_app/.gitlab-ci.yml

James Polley
Order slots by room order first

* lca2018 has a situation where we have multiple slots starting at the
same time, but ending at different times
* The headers of the timetable grid are sorted by room sort order
* In sqlite at least, ordering by start,order seems to implicitly
resolve duplicate start times by looking at the other sort fields
first, and will only sort on order if all other fields are identical

* This results in the slot that ends first going in column 1, which
gets out of sync with the room listed in the header

* I can't figure out how to solve this in the database, so...

* Force the slots to be sorted by room order.
* Then, for each start_time, select out slots starting at that time
and operate on them
* This both gets the slots in the right order *and* keeps multi-room
slots with the right colspan. Yay!

* It's possible that this wouldn't be needed on some DBs which might
do the sorting differently.
build_image:
  image: docker:git
  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: prod
    url: https://rego.linux.conf.au

build_ticket_image:
  image: docker:git
  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_dev:$CI_COMMIT_SHA asia.gcr.io/linuxconfsydney/symposion_app_dev:ticket-testing
    - docker push asia.gcr.io/linuxconfsydney/symposion_app_dev:ticket-testing
  only:
    - ticket-testing

k8s-ticket-testing-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-dev set image deployment/symposion-app symposion-app=asia.gcr.io/linuxconfsydney/symposion_app_dev:$CI_COMMIT_SHA
  when: manual
  only:
  - ticket-testing
  environment:
    name: staging
    url: https://ticket-testing.lca2018.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://lca2018.gitlab.io/symposion_app/

test_sphinx:
  <<: *sphinx
  stage: test