diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 8e14dd40acceeebb7a769548df497f8aaa605b4a..0051192cb35ada7850ab4b4dc5ac0c960a4bf06b 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -14,20 +14,34 @@ variables: HELM_EXPERIMENTAL_OCI: "1" CICHART_IMAGE: "$CI_REGISTRY_IMAGE/cichart:latest" -build ci: - stage: .pre + +.docker_based_job: image: docker:19.03.1 tags: - docker + - kubernetes 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 script: - - docker login --username $CI_REGISTRY_USER --password $CI_REGISTRY_PASSWORD $CI_REGISTRY - cd cichart - docker build --tag $CICHART_IMAGE . - docker push $CICHART_IMAGE @@ -40,23 +54,13 @@ build ci: .get_chart_tmpl: + extends: .helm_based_job stage: get chart - image: $CICHART_IMAGE - services: - - docker:19.03.1-dind - tags: - - docker variables: SUBCOMP_REPOS_BASE: "https://gitlab.ssec.wisc.edu/cspp_geo/geosphere" # required: SUBCOMP_REPOS: "" SUBCOMP_CHART_DIR: "" - 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} script: - repos_url="${SUBCOMP_REPOS_BASE}/${SUBCOMP_REPOS}" - git clone --depth 1 $repos_url @@ -93,18 +97,8 @@ get_chart_grb: # TODO: Use "environment: " to define a job for production and one for development # https://docs.gitlab.com/ee/ci/yaml/#environment deploy_g16_grb: + extends: .helm_based_job stage: deploy GRB - image: $CICHART_IMAGE - services: - - docker:19.03.1-dind - tags: - - docker - 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} script: - if [ -n "$CI_COMMIT_TAG" ]; then ns="geosphere"; diff --git a/helpers/build_image.yml b/helpers/build_image.yml index 3485f1e95b3bf62a88a99782a37489aabe5d4788..814a73deaa0214a628c0793e4513a559b8e553bf 100644 --- a/helpers/build_image.yml +++ b/helpers/build_image.yml @@ -18,6 +18,7 @@ stage: build image tags: - docker + - kubernetes before_script: - docker login -u ${CI_REGISTRY_USER} -p ${CI_REGISTRY_PASSWORD} ${CI_REGISTRY} script: