@@ -188,6 +188,7 @@ jobs:
188188 dockerfiles : ${{ steps.filter.outputs.dockerfiles }}
189189 mjml : ${{ steps.filter.outputs.mjml }}
190190 zapier : ${{ steps.filter.outputs.zapier }}
191+ helm : ${{ steps.filter.outputs.helm }}
191192 steps :
192193 - name : Checkout code
193194 uses : actions/checkout@v4
@@ -216,7 +217,10 @@ jobs:
216217 zapier:
217218 - 'integrations/zapier/**'
218219 - '.github/workflows/ci.yml'
219-
220+ helm:
221+ - 'deploy/helm/**'
222+ - '.github/workflows/ci.yml'
223+ - '.github/workflows/trigger-helm-chart-upload.yml'
220224 backend-lint :
221225 name : Backend Lint
222226 runs-on : ubuntu-latest
@@ -326,6 +330,44 @@ jobs:
326330 path : reports/hadolint.json
327331 retention-days : 7
328332
333+ helm-chart-lint :
334+ name : Helm Chart Lint
335+ runs-on : ubuntu-latest
336+ needs :
337+ - detect-changes
338+ permissions :
339+ contents : read
340+ steps :
341+ - name : Exit early if helm not changed and not develop/master
342+ run : |
343+ if [[ "${{ needs.detect-changes.outputs.helm }}" != "true" && \
344+ "${{ github.ref_name }}" != "develop" && \
345+ "${{ github.ref_name }}" != "master" ]]; then
346+ echo "No backend changes detected — skipping backend lint."
347+ exit 0
348+ fi
349+
350+ - name : Checkout code
351+ uses : actions/checkout@v4
352+
353+ - name : Set up Helm
354+ uses : azure/setup-helm@v4
355+
356+ - name : Lint Helm Chart
357+ run : |
358+ cd deploy/helm
359+ rm -f baserow/Chart.lock
360+
361+ # Add Helm repositories
362+ helm repo add bitnami https://charts.bitnami.com/bitnami
363+ helm repo add caddy https://caddyserver.github.io/ingress
364+
365+ # Build dependencies
366+ helm dependency build baserow
367+
368+ # Lint the chart with strict mode
369+ helm lint baserow --strict
370+
329371 # ==========================================================================
330372 # TEST STAGE - Run backend and frontend tests
331373 # ==========================================================================
@@ -552,7 +594,7 @@ jobs:
552594 - name : Setup Node.js
553595 uses : actions/setup-node@v4
554596 with :
555- node-version : ' 18 '
597+ node-version : " 18 "
556598
557599 - name : Run Zapier tests
558600 run : |
@@ -585,7 +627,7 @@ jobs:
585627 - name : Setup Node.js
586628 uses : actions/setup-node@v4
587629 with :
588- node-version : ' 18 '
630+ node-version : " 18 "
589631
590632 - name : Compile MJML templates
591633 run : |
@@ -667,9 +709,9 @@ jobs:
667709 - name : Setup Node.js
668710 uses : actions/setup-node@v4
669711 with :
670- node-version : ' 18 '
671- cache : ' yarn'
672- cache-dependency-path : ' e2e-tests/yarn.lock'
712+ node-version : " 18 "
713+ cache : " yarn"
714+ cache-dependency-path : " e2e-tests/yarn.lock"
673715
674716 - name : Log in to GitHub Container Registry
675717 uses : docker/login-action@v3
@@ -790,7 +832,7 @@ jobs:
790832 - name : Setup Node.js
791833 uses : actions/setup-node@v4
792834 with :
793- node-version : ' 18 '
835+ node-version : " 18 "
794836
795837 - name : Download all E2E test results
796838 uses : actions/download-artifact@v4
@@ -832,7 +874,7 @@ jobs:
832874 - name : Set up Python
833875 uses : actions/setup-python@v5
834876 with :
835- python-version : ' 3.11'
877+ python-version : " 3.11"
836878
837879 - name : Install coverage tool
838880 run : pip install coverage
0 commit comments