Skip to content
Snippets Groups Projects
.gitlab-ci.yml 2.11 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

cyril.cros's avatar
cyril.cros committed
stages:
cyril.cros's avatar
cyril.cros committed
  - download_from_s3
cyril.cros's avatar
cyril.cros committed
  - upload_to_s3
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: download_from_s3
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

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
cluster_access_test:
  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
    - cd deployment
    - 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
    - kubectl config current-context
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
    - kubectl -n $NS create --dry-run=client -o yaml
      secret docker-registry gitlab-auth-token
cyril.cros's avatar
cyril.cros committed
      --docker-server=$CI_REGISTRY --docker-username=$CI_REGISTRY_USER
cyril.cros's avatar
cyril.cros committed
      --docker-password=$CI_REGISTRY_PASSWORD |
      kubectl apply -f -
cyril.cros's avatar
cyril.cros committed
  script:
cyril.cros's avatar
cyril.cros committed
    - kubectl apply -k deployment
    - kubectl -n $NS wait --for=condition=available --timeout=60s deploy/jbrowse2
  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
    - kubectl delete -k deployment
    - kubectl -n $NS delete secret gitlab-auth-token