From db25cbab85e1c556dbbad4cee748eb0601b87b0a Mon Sep 17 00:00:00 2001
From: Sheogorath <sheogorath@shivering-isles.com>
Date: Sun, 25 Sep 2022 23:12:30 +0200
Subject: [PATCH] ci(charts): Add automatic unit-tests for helm charts

This patch introduces the CI integration for helm-unittest, a nice helm
plugin, which allows to run automatic tests on helm charts and
validating the YAML based on individual settings with clear reports in
gitlab.
---
 .gitlab-ci.yml               |  1 +
 charts/.utils/gitlab-ci.yaml | 20 ++++++++++++++++++++
 2 files changed, 21 insertions(+)

diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index 255233df4..2edd2c12a 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -4,6 +4,7 @@ include:
   - local: 'charts/.utils/gitlab-ci.yaml'
 stages:
   - build
+  - test
   - changelog
   - release
 
diff --git a/charts/.utils/gitlab-ci.yaml b/charts/.utils/gitlab-ci.yaml
index 2e45ade0d..0801e34c5 100644
--- a/charts/.utils/gitlab-ci.yaml
+++ b/charts/.utils/gitlab-ci.yaml
@@ -17,3 +17,23 @@ chart-build-keycloak:
     - if: '$CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH && $CI_PIPELINE_SOURCE == "push"'
       changes:
         - charts/${CHART}/Chart.yaml
+
+chart-helm-unittest:
+  stage: test
+  extends: .chart-matrix
+  image:
+    name: docker.io/quintush/helm-unittest:3.10.0-0.2.9
+    entrypoint: [""]
+  script:
+    - helm unittest -3 -o helm-unittest.xml -t junit charts/${CHART}
+  artifacts:
+    when: always
+    reports:
+      junit:
+        - helm-unittest.xml
+  rules:
+    - if: '$CI_PIPELINE_SOURCE == "push"'
+      changes:
+        - charts/${CHART}/**/*
+      exists:
+        - charts/${CHART}/tests/
-- 
GitLab