diff --git a/pkg/functions/runner.go b/pkg/functions/runner.go index fb667f9dda..9660f6c9a9 100644 --- a/pkg/functions/runner.go +++ b/pkg/functions/runner.go @@ -110,8 +110,7 @@ func runGo(ctx context.Context, job *Job) (err error) { fmt.Printf("cd %v && go build -o f.bin\n", job.Dir()) } - // Build - args := []string{"build", "-o", "f.bin"} + args := []string{"mod", "tidy"} if job.verbose { args = append(args, "-v") } @@ -124,6 +123,20 @@ func runGo(ctx context.Context, job *Job) (err error) { return } + // Build + args = []string{"build", "-o", "f.bin"} + if job.verbose { + args = append(args, "-v") + } + cmd = exec.CommandContext(ctx, "go", args...) + cmd.Dir = job.Dir() + cmd.Stdout = os.Stdout + cmd.Stderr = os.Stderr + err = cmd.Run() + if err != nil { + return + } + // Run // --- bin := filepath.Join(job.Dir(), "f.bin") diff --git a/pkg/oci/containerize_go.go b/pkg/oci/containerize_go.go index 1736571a88..ae882ab130 100644 --- a/pkg/oci/containerize_go.go +++ b/pkg/oci/containerize_go.go @@ -65,8 +65,18 @@ func goBuild(cfg *buildConfig, p v1.Platform) (binPath string, err error) { fmt.Printf(" %v\n", filepath.Base(outpath)) } + cmd := exec.CommandContext(cfg.ctx, gobin, "mod", "tidy") + cmd.Env = envs + cmd.Dir = cfg.buildDir() + cmd.Stderr = os.Stderr + cmd.Stdout = os.Stdout + err = cmd.Run() + if err != nil { + return "", fmt.Errorf("cannot sync deps: %w", err) + } + // Build the function - cmd := exec.CommandContext(cfg.ctx, gobin, args...) + cmd = exec.CommandContext(cfg.ctx, gobin, args...) cmd.Env = envs cmd.Dir = cfg.buildDir() cmd.Stderr = os.Stderr