From e368cde1eb046e5e80905c3fde0d0e3bc1b604a0 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Nikolai=20R=C3=B8ed=20Kristiansen?=
 <nikolai.kristiansen@remarkable.no>
Date: Sun, 26 Mar 2023 14:19:04 +0200
Subject: [PATCH] fix(manager/helmfile): Detect more local charts (#21093)

---
 .../manager/helmfile/__fixtures__/go-template.yaml        | 6 ++++++
 lib/modules/manager/helmfile/extract.spec.ts              | 8 ++++++++
 lib/modules/manager/helmfile/extract.ts                   | 4 ++--
 3 files changed, 16 insertions(+), 2 deletions(-)

diff --git a/lib/modules/manager/helmfile/__fixtures__/go-template.yaml b/lib/modules/manager/helmfile/__fixtures__/go-template.yaml
index b1c332bcd8..d9179d9a17 100644
--- a/lib/modules/manager/helmfile/__fixtures__/go-template.yaml
+++ b/lib/modules/manager/helmfile/__fixtures__/go-template.yaml
@@ -10,6 +10,12 @@ releases:
   - name: "{{ requiredEnv \"RELEASE_NAME\" }}"
     namespace: default
     chart: ./foo
+  - name: "{{ requiredEnv \"RELEASE_NAME\" }}"
+    namespace: default
+    chart: ../bar
+  - name: "{{ requiredEnv \"RELEASE_NAME\" }}"
+    namespace: default
+    chart: /baz
   - name: {{ requiredEnv "RELEASE_NAME" }}
     namespace: default
     chart: ./foo
diff --git a/lib/modules/manager/helmfile/extract.spec.ts b/lib/modules/manager/helmfile/extract.spec.ts
index 6b312da7b7..68a7bbb8cd 100644
--- a/lib/modules/manager/helmfile/extract.spec.ts
+++ b/lib/modules/manager/helmfile/extract.spec.ts
@@ -335,6 +335,14 @@ describe('modules/manager/helmfile/extract', () => {
       expect(result).toMatchObject({
         datasource: 'helm',
         deps: [
+          {
+            depName: '',
+            skipReason: 'local-chart',
+          },
+          {
+            depName: '',
+            skipReason: 'local-chart',
+          },
           {
             depName: '',
             skipReason: 'local-chart',
diff --git a/lib/modules/manager/helmfile/extract.ts b/lib/modules/manager/helmfile/extract.ts
index 70b79c7200..4f65fbd823 100644
--- a/lib/modules/manager/helmfile/extract.ts
+++ b/lib/modules/manager/helmfile/extract.ts
@@ -59,8 +59,8 @@ export function extractPackageFile(
         };
       }
 
-      // If starts with ./ is for sure a local path
-      if (dep.chart.startsWith('./')) {
+      // If it starts with ./ ../ or / then it's a local path
+      if (['./', '../', '/'].some((val) => dep.chart.startsWith(val))) {
         return {
           depName: dep.name,
           skipReason: 'local-chart',
-- 
GitLab