feat: Add a directory property to the result of helmfile build to know where is the file

Signed-off-by: Kevin Biebuyck <kbiebuyck@develop-it.net>
This commit is contained in:
Kevin Biebuyck 2025-05-19 14:58:49 +02:00
parent 470a6140cd
commit ce376a3496
3 changed files with 13 additions and 0 deletions

View File

@ -94,6 +94,12 @@ func (c *StateCreator) Parse(content []byte, baseDir, file string) (*HelmState,
state.FilePath = file state.FilePath = file
state.basePath = baseDir state.basePath = baseDir
absDir, err := filepath.Abs(baseDir)
if err != nil {
return nil, err
}
state.Directory = absDir
state.LockFile = c.lockFile state.LockFile = c.lockFile
decode := yaml.NewDecoder(content, c.Strict) decode := yaml.NewDecoder(content, c.Strict)

View File

@ -114,6 +114,7 @@ func (hs *HelmState) UnmarshalYAML(unmarshal func(any) error) error {
type HelmState struct { type HelmState struct {
basePath string basePath string
FilePath string FilePath string
Directory string `yaml:"directory,omitempty"`
ReleaseSetSpec `yaml:",inline"` ReleaseSetSpec `yaml:",inline"`

View File

@ -2105,6 +2105,7 @@ generated: 2019-05-16T15:42:45.50486+09:00
state := &HelmState{ state := &HelmState{
basePath: basePath, basePath: basePath,
FilePath: "/src/helmfile.yaml", FilePath: "/src/helmfile.yaml",
Directory: "/src",
ReleaseSetSpec: ReleaseSetSpec{ ReleaseSetSpec: ReleaseSetSpec{
Releases: []ReleaseSpec{ Releases: []ReleaseSpec{
{ {
@ -2163,6 +2164,9 @@ generated: 2019-05-16T15:42:45.50486+09:00
if resolved.Releases[4].Version != "1.4.0" { 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) 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) { func TestHelmState_ResolveDeps_NoLockFile(t *testing.T) {
@ -2170,6 +2174,7 @@ func TestHelmState_ResolveDeps_NoLockFile(t *testing.T) {
state := &HelmState{ state := &HelmState{
basePath: "/src", basePath: "/src",
FilePath: "/src/helmfile.yaml", FilePath: "/src/helmfile.yaml",
Directory: "/src",
ReleaseSetSpec: ReleaseSetSpec{ ReleaseSetSpec: ReleaseSetSpec{
Releases: []ReleaseSpec{ Releases: []ReleaseSpec{
{ {
@ -2220,6 +2225,7 @@ func TestHelmState_ResolveDeps_NoLockFile_WithCustomLockFile(t *testing.T) {
state := &HelmState{ state := &HelmState{
basePath: "/src", basePath: "/src",
FilePath: "/src/helmfile.yaml", FilePath: "/src/helmfile.yaml",
Directory: "/src",
ReleaseSetSpec: ReleaseSetSpec{ ReleaseSetSpec: ReleaseSetSpec{
LockFile: "custom-lock-file", LockFile: "custom-lock-file",
Releases: []ReleaseSpec{ Releases: []ReleaseSpec{