From 312fcb4a5459ea0c5fbbd87cd7c4cc2213eedba8 Mon Sep 17 00:00:00 2001 From: Mariell Hoversholm Date: Wed, 28 May 2025 15:35:24 +0200 Subject: [PATCH] Build: Use absolute paths when passed relatives (#106122) --- pkg/build/daggerbuild/arguments/grafana.go | 39 ++++++++++++---------- 1 file changed, 21 insertions(+), 18 deletions(-) diff --git a/pkg/build/daggerbuild/arguments/grafana.go b/pkg/build/daggerbuild/arguments/grafana.go index d7a4ebe599c..00bad617e32 100644 --- a/pkg/build/daggerbuild/arguments/grafana.go +++ b/pkg/build/daggerbuild/arguments/grafana.go @@ -3,7 +3,6 @@ package arguments import ( "context" "fmt" - "log" "log/slog" "path" "path/filepath" @@ -95,16 +94,30 @@ func GrafanaDirectoryOptsFromFlags(c cliutil.CLIContext) *GrafanaDirectoryOpts { } func cloneOrMount(ctx context.Context, client *dagger.Client, localPath, repo, ref string, ght string) (*dagger.Directory, error) { - // If GrafanaDir was provided, then we can just use that one. - if path := localPath; path != "" { - slog.Info("Using local Grafana found", "path", path) - return daggerutil.HostDir(client, path) + if localPath != "" { + absolute, err := filepath.Abs(localPath) + if err != nil { + return nil, fmt.Errorf("error getting absolute path for local dir: %w", err) + } + localPath = absolute + slog.Info("Using local directory for repository", "path", localPath, "repo", repo) + return daggerutil.HostDir(client, localPath) + } + + ght, err := githubToken(ctx, ght) + if err != nil { + return nil, fmt.Errorf("error acquiring GitHub token: %w", err) } return git.CloneWithGitHubToken(client, ght, repo, ref) } func applyPatches(ctx context.Context, client *dagger.Client, src *dagger.Directory, repo, patchesPath, ref, ght string) (*dagger.Directory, error) { + ght, err := githubToken(ctx, ght) + if err != nil { + return nil, fmt.Errorf("error acquiring GitHub token: %w", err) + } + // Clone the patches repository on 'main' dir, err := git.CloneWithGitHubToken(client, ght, repo, ref) if err != nil { @@ -144,12 +157,7 @@ func applyPatches(ctx context.Context, client *dagger.Client, src *dagger.Direct func grafanaDirectory(ctx context.Context, opts *pipeline.ArgumentOpts) (any, error) { o := GrafanaDirectoryOptsFromFlags(opts.CLIContext) - ght, err := githubToken(ctx, o.GitHubToken) - if err != nil { - log.Println("No github token found:", err) - } - - src, err := cloneOrMount(ctx, opts.Client, o.GrafanaDir, o.GrafanaRepo, o.GrafanaRef, ght) + src, err := cloneOrMount(ctx, opts.Client, o.GrafanaDir, o.GrafanaRepo, o.GrafanaRef, o.GitHubToken) if err != nil { return nil, err } @@ -172,7 +180,7 @@ func grafanaDirectory(ctx context.Context, opts *pipeline.ArgumentOpts) (any, er WithFile(".buildinfo.branch", branchFile) if o.PatchesRepo != "" { - withPatches, err := applyPatches(ctx, opts.Client, src, o.PatchesRepo, o.PatchesPath, o.PatchesRef, ght) + withPatches, err := applyPatches(ctx, opts.Client, src, o.PatchesRepo, o.PatchesPath, o.PatchesRef, o.GitHubToken) if err != nil { opts.Log.Debug("patch application skipped", "error", err) } else { @@ -209,12 +217,7 @@ func enterpriseDirectory(ctx context.Context, opts *pipeline.ArgumentOpts) (any, return nil, fmt.Errorf("error initializing grafana directory: %w", err) } - ght, err := githubToken(ctx, o.GitHubToken) - if err != nil { - return nil, nil - } - - src, err := cloneOrMount(ctx, opts.Client, o.EnterpriseDir, o.EnterpriseRepo, o.EnterpriseRef, ght) + src, err := cloneOrMount(ctx, opts.Client, o.EnterpriseDir, o.EnterpriseRepo, o.EnterpriseRef, o.GitHubToken) if err != nil { return nil, err }