From 4916082c6ea55da1ff4fcc0d1236e97c3068d220 Mon Sep 17 00:00:00 2001 From: Maarten de Waard <maarten@greenhost.nl> Date: Wed, 8 Dec 2021 16:32:57 +0100 Subject: [PATCH] default to empty sy string for CHART_DIR --- .gitlab/ci_templates/helm_package.yml | 63 +++++++++++++++++++++++++++ 1 file changed, 63 insertions(+) create mode 100644 .gitlab/ci_templates/helm_package.yml diff --git a/.gitlab/ci_templates/helm_package.yml b/.gitlab/ci_templates/helm_package.yml new file mode 100644 index 000000000..c31d7a3da --- /dev/null +++ b/.gitlab/ci_templates/helm_package.yml @@ -0,0 +1,63 @@ +# Include this file if you want to package your helm chart to a helm registry. +# You'll need to set two variables: +# +# 1. CHART_NAME: the name of the helm chart. Should correspond to the name in +# Chart.yaml +# 2. CHART_DIR (optional): the directory where your helm chart is in you +# repository. Defaults to '.' + +variables: + CHART_DIR: "" + +.chart_release_rules: + rules: + - changes: + - ${CHART_DIR}/Chart.yaml + +lint-helm: + stage: lint-helm-chart + image: + name: alpine/helm:3.7.1 + entrypoint: ["/bin/sh", "-c"] + script: + - cd ${CHART_DIR} + - helm dep update + - helm lint . + artifacts: + paths: + - '${CHART_DIR}/charts/**' + expire_in: 1 week + # Even if lint fails, upload the charts/ folder as artifact + when: always + rules: + - changes: + - '${CHART_DIR}/*.yaml' + - ${CHART_DIR}/templates/*.yaml + +package-chart: + stage: package-helm-chart + image: + name: alpine/helm:3.7.1 + entrypoint: ["/bin/sh", "-c"] + script: + - cd ${CHART_DIR} + - helm package . + artifacts: + paths: + - ${CHART_DIR}/${CHART_NAME}-* + expire_in: 1 week + extends: + - .chart_release_rules + +# Push helm chart. Charts on the `main` branch are pushed to `stable`, others +# are pushed to the `unstable` channel. +release-helm: + image: "rancher/curlimages-curl:7.73.0" + stage: release-helm-chart + script: + - cd ${CHART_DIR} + - if [ "$CI_COMMIT_BRANCH" == "main" ]; then export HELM_CHANNEL='stable'; else export HELM_CHANNEL='unstable'; fi + - export CHART_FILE=$(ls ${CHART_NAME}-*.tgz) + - curl --fail --request POST --user gitlab-ci-token:$CI_JOB_TOKEN --form "chart=@${CHART_FILE}" "${CI_API_V4_URL}/projects/${CI_PROJECT_ID}/packages/helm/api/${HELM_CHANNEL}/charts" + extends: + - .chart_release_rules -- GitLab