diff --git a/controllers/helmchart_controller.go b/controllers/helmchart_controller.go index 844cf63c8..0eaca70bb 100644 --- a/controllers/helmchart_controller.go +++ b/controllers/helmchart_controller.go @@ -23,6 +23,7 @@ import ( "net/url" "os" "path" + "path/filepath" "strings" "time" @@ -383,7 +384,7 @@ func (r *HelmChartReconciler) reconcileFromGitRepository(ctx context.Context, // package chart pkg := action.NewPackage() - pkg.Destination = artifact.Path + pkg.Destination = filepath.Dir(artifact.Path) _, err = pkg.Run(chartPath, nil) if err != nil { err = fmt.Errorf("chart package error: %w", err) diff --git a/controllers/storage.go b/controllers/storage.go index a0a51d299..56e4ea48a 100644 --- a/controllers/storage.go +++ b/controllers/storage.go @@ -120,12 +120,14 @@ func (s *Storage) RemoveAllButCurrent(artifact sourcev1.Artifact) error { return nil } -// ArtifactExist returns a boolean indicating whether the artifact file exists in storage +// ArtifactExist returns a boolean indicating whether the artifact exists in storage and is a +// regular file. func (s *Storage) ArtifactExist(artifact sourcev1.Artifact) bool { - if _, err := os.Stat(artifact.Path); os.IsNotExist(err) { + fi, err := os.Lstat(artifact.Path) + if err != nil { return false } - return true + return fi.Mode().IsRegular() } // Archive creates a tar.gz to the artifact path from the given dir excluding any VCS specific