Newer
Older
- deploy GRB
- deploy G2G
- deploy WMS
- deploy WMTS
variables:
DOCKER_TLS_CERTDIR: ""
DOCKER_HOST: "tcp://localhost:2375"
DOCKER_DRIVER: overlay2
HELM_EXPERIMENTAL_OCI: "1"
CICHART_IMAGE: "$CI_REGISTRY_IMAGE/cichart:latest"
services:
- docker:19.03.1-dind
before_script:
- docker info
- docker login -u ${CI_REGISTRY_USER} -p ${CI_REGISTRY_PASSWORD} ${CI_REGISTRY}
.helm_based_job:
extends: .docker_based_job
image: $CICHART_IMAGE
before_script:
- docker info
- docker login -u ${CI_REGISTRY_USER} -p ${CI_REGISTRY_PASSWORD} ${CI_REGISTRY}
- shopt -s expand_aliases
- alias helm='docker run -t --rm -e HELM_EXPERIMENTAL_OCI="$HELM_EXPERIMENTAL_OCI" -v $(pwd):/apps -w /apps -v ~/.kube:/root/.kube -v ~/.helm:/root/.helm -v ~/.config/helm:/root/.config/helm -v ~/.cache/helm:/root/.cache/helm alpine/helm:3.2.3'
- helm registry login -u ${CI_REGISTRY_USER} -p ${CI_JOB_TOKEN} ${CI_REGISTRY}
build ci:
stage: .pre
extends: .docker_based_job
- docker build --tag $CICHART_IMAGE .
- docker push $CICHART_IMAGE
rules:
- changes:
- cichart/Dockerfile
when: always
- if: $BUILD_CI_IMAGE
when: always
variables:
SUBCOMP_REPOS_BASE: "https://gitlab.ssec.wisc.edu/cspp_geo/geosphere"
# required:
SUBCOMP_REPOS: ""
SUBCOMP_CHART_DIR: ""
script:
- repos_url="${SUBCOMP_REPOS_BASE}/${SUBCOMP_REPOS}"
- git clone --depth 1 $repos_url
- cd ${SUBCOMP_REPOS}
# most recent docker image should be tagged with most recent SHA
- docker_tag=$(git rev-parse --short HEAD)
- echo $docker_tag
- cd chart
# make the docker tag available in later stages
- echo export docker_tag=$docker_tag >${SUBCOMP_CHART_DIR}/cibuild.env
- |-
sed -i "s/^appVersion: .*\$/appVersion: ${docker_tag}/g" ${SUBCOMP_CHART_DIR}/Chart.yaml
# debug:
- helm template ${SUBCOMP_CHART_DIR} ${SUBCOMP_CHART_DIR}
- ${SUBCOMP_REPOS}/chart/${SUBCOMP_CHART_DIR}
# XXX: Do we always want to clone the subcomponent
# rules:
# - if: '$GEOSPHERE_SUBCOMP == ""'
# when: always
# - if: '$GEOSPHERE_SUBCOMP == $SUBCOMP_NAME'
# when: always
# - when: never
get_chart_grb:
extends: .get_chart_tmpl
variables:
SUBCOMP_REPOS: "geosphere-grb"
SUBCOMP_CHART_DIR: "cspp-geo-grb"
# TODO: Use "environment: " to define a job for production and one for development
# https://docs.gitlab.com/ee/ci/yaml/#environment
script:
- if [ -n "$CI_COMMIT_TAG" ]; then
ns="geosphere";
else
ns="geosphere-test";
fi
- cd geosphere-grb/chart
# copy secret kubeconfig to the mounted (pwd) directory
- cp $kubekorner_k3s_config .
- kubeconfig=$(basename $kubekorner_k3s_config)
- echo "Deploying version $docker_tag to cluster namespace $ns"
# copy extra values files to the local directory (where helm has access via docker mount)
- cp ../../production/values-g16-grb.yaml .
- helm upgrade -v 2 --install --kubeconfig $kubeconfig --namespace $ns --set grbNotifier.image.dockerTag=$docker_tag -f ../../production/values-g16-grb.yaml cspp-geo-grb cspp-geo-grb/
needs:
- job: get_chart_grb
artifacts: true
rules:
- if: '$kubekorner_k3s_config == ""'
when: never
- when: on_success