Skip to content
Snippets Groups Projects
.gitlab-ci.yml 2.13 KiB
Newer Older
cyril.cros's avatar
cyril.cros committed
---
cyril.cros's avatar
cyril.cros committed
variables:
cyril.cros's avatar
cyril.cros committed
  S3_ENDPOINT: "https://s3.embl.de"
  S3_BUCKET: "annelids"
cyril.cros's avatar
cyril.cros committed
  JBROWSE_HOSTNAME: "genomes.arendt.embl.de"
cyril.cros's avatar
cyril.cros committed

cyril.cros's avatar
cyril.cros committed
stages:
cyril.cros's avatar
cyril.cros committed
  - access_test
cyril.cros's avatar
cyril.cros committed
  - build_container
cyril.cros's avatar
cyril.cros committed
  - deploy_to_cluster
  - clean_up_on_failure
cyril.cros's avatar
cyril.cros committed

cyril.cros's avatar
cyril.cros committed
s3_access_test:
  image: minio/mc
cyril.cros's avatar
cyril.cros committed
  stage: access_test
cyril.cros's avatar
cyril.cros committed
  rules:
cyril.cros's avatar
cyril.cros committed
    - changes: # TODO change where necessary
cyril.cros's avatar
cyril.cros committed
      - image/*
cyril.cros's avatar
cyril.cros committed
  before_script:
    - mc alias set genomes $S3_ENDPOINT $S3_ACCESS_KEY $S3_SECRET_KEY
  script:
    - mc ls genomes/$S3_BUCKET
cyril.cros's avatar
cyril.cros committed
    - cd image

cyril.cros's avatar
cyril.cros committed
cluster_access_test:
  image: dtzar/helm-kubectl:3.8.2
  stage: access_test
  before_script:
    - cd deployment
    - echo $KUBECONFIG | base64 -d > /tmp/kubeconf
    - export KUBECONFIG=/tmp/kubeconf
  script:
    - kubectl config current-context

cyril.cros's avatar
cyril.cros committed
build_nginx_with_jbrowse_config_file:
  image: gcr.io/kaniko-project/executor:debug-v0.21.0
  stage: build_container
  before_script:
cyril.cros's avatar
cyril.cros committed
    - echo "{\"auths\":{\"$CI_REGISTRY\":{\"username\":\"$CI_REGISTRY_USER\",\"password\":\"$CI_REGISTRY_PASSWORD\"}}}" > /kaniko/.docker/config.json
cyril.cros's avatar
cyril.cros committed
  script:
cyril.cros's avatar
cyril.cros committed
    - /kaniko/executor --cache=true --context $CI_PROJECT_DIR/image 
cyril.cros's avatar
cyril.cros committed
      --dockerfile $CI_PROJECT_DIR/image/Dockerfile 
      --destination $CI_REGISTRY_IMAGE:jbrowse2-$CI_COMMIT_SHORT_SHA
cyril.cros's avatar
cyril.cros committed

cyril.cros's avatar
cyril.cros committed
kustomize_build_apply:
  image: dtzar/helm-kubectl:3.8.2
  stage: deploy_to_cluster
cyril.cros's avatar
cyril.cros committed
  before_script:
cyril.cros's avatar
cyril.cros committed
    - echo $KUBECONFIG | base64 -d > /tmp/kubeconf
    - export KUBECONFIG=/tmp/kubeconf
cyril.cros's avatar
cyril.cros committed
  script:
cyril.cros's avatar
cyril.cros committed
    - envsubst < deployment/jbrowse2-dep.yml > deployment/jbrowse2-dep.yaml
    - cat deployment/jbrowse2-dep.yaml
cyril.cros's avatar
cyril.cros committed
    - kubectl apply -k deployment
cyril.cros's avatar
cyril.cros committed
    - kubectl -n $NS rollout restart deployment/jbrowse2
cyril.cros's avatar
cyril.cros committed
    - kubectl -n $NS wait --for=condition=available --timeout=60s deploy/jbrowse2
cyril.cros's avatar
cyril.cros committed
    - kubectl -n $NS rollout status deployment/jbrowse2
cyril.cros's avatar
cyril.cros committed
  dependencies:
    - cluster_access_test
cyril.cros's avatar
cyril.cros committed

cyril.cros's avatar
cyril.cros committed
clean_up_k8s_deployment:
  image: dtzar/helm-kubectl:3.8.2
  stage: clean_up_on_failure
  when: on_failure
cyril.cros's avatar
cyril.cros committed
  before_script:
cyril.cros's avatar
cyril.cros committed
    - echo $KUBECONFIG | base64 -d > /tmp/kubeconf
    - export KUBECONFIG=/tmp/kubeconf
cyril.cros's avatar
cyril.cros committed
  script:
    - echo 'Failed job, deleting resources'
cyril.cros's avatar
cyril.cros committed
    - envsubst < deployment/jbrowse2-dep.yml > deployment/jbrowse2-dep.yaml
    - kubectl delete -k deployment