--- variables: S3_ENDPOINT: "https://s3.embl.de" S3_BUCKET: "annelids" JBROWSE_HOSTNAME: "genomes-testing.arendt.embl.de" RELEASE_LABEL: "testing" INGRESS_CLASS: "internal-users" stages: - build - deploy - clean s3_access_test: stage: deploy image: minio/mc rules: - when: always # TODO change where necessary allow_failure: true # Don't care if we are not uploading anything yet before_script: - mc alias set genomes $S3_ENDPOINT $S3_ACCESS_KEY $S3_SECRET_KEY script: - mc ls genomes/$S3_BUCKET cluster_access_test: stage: deploy image: line/kubectl-kustomize:1.30.1-5.4.2 before_script: - echo $KUBECONFIG | base64 -d > /tmp/kubeconf - export KUBECONFIG=/tmp/kubeconf script: - kubectl config current-context rules: - when: always # TODO change where necessary build_nginx_with_jbrowse_config_file: stage: build image: name: gcr.io/kaniko-project/executor:v1.23.2-debug before_script: # yamllint disable-line rule:line-length - echo "{\"auths\":{\"$CI_REGISTRY\":{\"username\":\"$CI_REGISTRY_USER\",\"password\":\"$CI_REGISTRY_PASSWORD\"}}}" > /kaniko/.docker/config.json script: - /kaniko/executor --cache=true --context $CI_PROJECT_DIR/image_jbrowse2 --dockerfile $CI_PROJECT_DIR/image_jbrowse2/Dockerfile --destination $CI_REGISTRY_IMAGE:jbrowse2-$CI_COMMIT_REF_NAME - echo "Uploaded to $CI_REGISTRY_IMAGE:jbrowse2-$$CI_COMMIT_REF_NAME" rules: - changes: - image_jbrowse2/**/* - deployment/**/* deploy_to_k8s: stage: deploy image: dtzar/helm-kubectl:3.8.2 needs: - job: cluster_access_test - job: s3_access_test - job: build_nginx_with_jbrowse_config_file optional: true before_script: - echo $KUBECONFIG | base64 -d > /tmp/kubeconf - export KUBECONFIG=/tmp/kubeconf script: - echo "You are on branch $CI_COMMIT_REF_NAME" - envsubst < deployment/jbrowse2-dep.yml > deployment/jbrowse2-dep.yaml - cat deployment/jbrowse2-dep.yaml - kubectl apply -k deployment - kubectl -n $NS rollout restart deployment/jbrowse2-$RELEASE_LABEL - kubectl -n $NS wait --for=condition=available --timeout=60s deploy/jbrowse2-$RELEASE_LABEL - kubectl -n $NS rollout status deployment/jbrowse2-$RELEASE_LABEL rules: - if: '$CI_COMMIT_REF_NAME == "main"' variables: JBROWSE_HOSTNAME: "genomes.arendt.embl.de" RELEASE_LABEL: "prod" INGRESS_CLASS: "external-users" when: on_success - if: '$CI_COMMIT_REF_NAME == "dev"' variables: JBROWSE_HOSTNAME: "genomes-dev.arendt.embl.de" RELEASE_LABEL: "dev" INGRESS_CLASS: "internal-users" when: on_success - when: on_success clean_up_k8s_deployment: stage: clean image: dtzar/helm-kubectl:3.8.2 needs: - deploy_to_k8s before_script: - echo $KUBECONFIG | base64 -d > /tmp/kubeconf - export KUBECONFIG=/tmp/kubeconf script: - echo 'Failed job, deleting resources' - envsubst < deployment/jbrowse2-dep.yml > deployment/jbrowse2-dep.yaml - kubectl delete -k deployment rules: - if: '$CI_COMMIT_REF_NAME == "main"' when: on_failure variables: JBROWSE_HOSTNAME: "genomes.arendt.embl.de" RELEASE_LABEL: "prod" INGRESS_CLASS: "external-users" - if: '$CI_COMMIT_REF_NAME == "dev"' when: on_failure variables: JBROWSE_HOSTNAME: "genomes-dev.arendt.embl.de" RELEASE_LABEL: "dev" INGRESS_CLASS: "internal-users" - when: on_failure