From ce376a3496ae3aa595ef753c322c1514a886cb95 Mon Sep 17 00:00:00 2001 From: Kevin Biebuyck Date: Mon, 19 May 2025 14:58:49 +0200 Subject: [PATCH] feat: Add a directory property to the result of helmfile build to know where is the file Signed-off-by: Kevin Biebuyck --- pkg/state/create.go | 6 ++++++ pkg/state/state.go | 1 + pkg/state/state_test.go | 6 ++++++ 3 files changed, 13 insertions(+) diff --git a/pkg/state/create.go b/pkg/state/create.go index b175faf9..79be37a4 100644 --- a/pkg/state/create.go +++ b/pkg/state/create.go @@ -94,6 +94,12 @@ func (c *StateCreator) Parse(content []byte, baseDir, file string) (*HelmState, state.FilePath = file state.basePath = baseDir + absDir, err := filepath.Abs(baseDir) + if err != nil { + return nil, err + } + state.Directory = absDir + state.LockFile = c.lockFile decode := yaml.NewDecoder(content, c.Strict) diff --git a/pkg/state/state.go b/pkg/state/state.go index b167fa88..605a7e2c 100644 --- a/pkg/state/state.go +++ b/pkg/state/state.go @@ -114,6 +114,7 @@ func (hs *HelmState) UnmarshalYAML(unmarshal func(any) error) error { type HelmState struct { basePath string FilePath string + Directory string `yaml:"directory,omitempty"` ReleaseSetSpec `yaml:",inline"` diff --git a/pkg/state/state_test.go b/pkg/state/state_test.go index 4834ba1c..996666e0 100644 --- a/pkg/state/state_test.go +++ b/pkg/state/state_test.go @@ -2105,6 +2105,7 @@ generated: 2019-05-16T15:42:45.50486+09:00 state := &HelmState{ basePath: basePath, FilePath: "/src/helmfile.yaml", + Directory: "/src", ReleaseSetSpec: ReleaseSetSpec{ Releases: []ReleaseSpec{ { @@ -2163,6 +2164,9 @@ generated: 2019-05-16T15:42:45.50486+09:00 if resolved.Releases[4].Version != "1.4.0" { t.Errorf("HelmState.ResolveDeps() - unexpected version number: expected=1.4.0, got=%s", resolved.Releases[6].Version) } + if state.Directory != "/src" { + t.Errorf("HelmState.Directory = %v, want %v", state.Directory, "/src") + } } func TestHelmState_ResolveDeps_NoLockFile(t *testing.T) { @@ -2170,6 +2174,7 @@ func TestHelmState_ResolveDeps_NoLockFile(t *testing.T) { state := &HelmState{ basePath: "/src", FilePath: "/src/helmfile.yaml", + Directory: "/src", ReleaseSetSpec: ReleaseSetSpec{ Releases: []ReleaseSpec{ { @@ -2220,6 +2225,7 @@ func TestHelmState_ResolveDeps_NoLockFile_WithCustomLockFile(t *testing.T) { state := &HelmState{ basePath: "/src", FilePath: "/src/helmfile.yaml", + Directory: "/src", ReleaseSetSpec: ReleaseSetSpec{ LockFile: "custom-lock-file", Releases: []ReleaseSpec{