X-Git-Url: https://git.arvados.org/arvados.git/blobdiff_plain/c797b629ddb0cf2808123a1b86d31b0153f1aca0..4c24ce559f6ff72b2aa621e71c72625a16740bee:/cmd/arvados-package/build.go diff --git a/cmd/arvados-package/build.go b/cmd/arvados-package/build.go index 1437f4b772..9841c890b7 100644 --- a/cmd/arvados-package/build.go +++ b/cmd/arvados-package/build.go @@ -16,6 +16,7 @@ import ( "path/filepath" "strings" + "git.arvados.org/arvados.git/lib/crunchrun" "git.arvados.org/arvados.git/sdk/go/ctxlog" "github.com/docker/docker/api/types" "github.com/docker/docker/client" @@ -24,13 +25,13 @@ import ( func build(ctx context.Context, opts opts, stdin io.Reader, stdout, stderr io.Writer) error { if opts.PackageVersion == "" { var buf bytes.Buffer - cmd := exec.CommandContext(ctx, "git", "describe", "--tag", "--dirty") + cmd := exec.CommandContext(ctx, "bash", "./build/version-at-commit.sh", "HEAD") cmd.Stdout = &buf cmd.Stderr = stderr cmd.Dir = opts.SourceDir err := cmd.Run() if err != nil { - return fmt.Errorf("git describe: %w", err) + return fmt.Errorf("%v: %w", cmd.Args, err) } opts.PackageVersion = strings.TrimSpace(buf.String()) ctxlog.FromContext(ctx).Infof("version not specified; using %s", opts.PackageVersion) @@ -53,6 +54,11 @@ func build(ctx context.Context, opts opts, stdin io.Reader, stdout, stderr io.Wr return err } defer os.RemoveAll(tmpdir) + if abs, err := filepath.Abs(tmpdir); err != nil { + return fmt.Errorf("error getting absolute path of tmpdir %s: %w", tmpdir, err) + } else { + tmpdir = abs + } selfbin, err := os.Readlink("/proc/self/exe") if err != nil { @@ -87,7 +93,7 @@ func build(ctx context.Context, opts opts, stdin io.Reader, stdout, stderr io.Wr cmd.Stderr = stderr err = cmd.Run() if err != nil { - return fmt.Errorf("docker run: %w", err) + return fmt.Errorf("%v: %w", cmd.Args, err) } cmd = exec.CommandContext(ctx, "docker", "commit", buildCtrName, buildImageName) @@ -120,7 +126,7 @@ func build(ctx context.Context, opts opts, stdin io.Reader, stdout, stderr io.Wr cmd.Stderr = stderr err = cmd.Run() if err != nil { - return fmt.Errorf("docker run: %w", err) + return fmt.Errorf("%v: %w", cmd.Args, err) } err = os.Rename(tmpdir+"/"+packageFilename, opts.PackageDir+"/"+packageFilename) @@ -132,7 +138,7 @@ func build(ctx context.Context, opts opts, stdin io.Reader, stdout, stderr io.Wr } func dockerRm(ctx context.Context, name string) error { - cli, err := client.NewEnvClient() + cli, err := client.NewClient(client.DefaultDockerHost, crunchrun.DockerAPIVersion, nil, nil) if err != nil { return err }