X-Git-Url: https://git.arvados.org/arvados.git/blobdiff_plain/4865911a605128adb454b3280b1cf9dcd38f499e..58e6402a72e9ac1a210b2d318591f973a37e1e57:/cmd/arvados-package/build.go diff --git a/cmd/arvados-package/build.go b/cmd/arvados-package/build.go index e826408c1a..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) @@ -113,12 +119,14 @@ func build(ctx context.Context, opts opts, stdin io.Reader, stdout, stderr io.Wr "-package-version", opts.PackageVersion, "-package-dir", "/pkg", "-package-chown", opts.PackageChown, + "-package-maintainer", opts.Maintainer, + "-package-vendor", opts.Vendor, ) cmd.Stdout = stdout 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) @@ -126,20 +134,11 @@ func build(ctx context.Context, opts opts, stdin io.Reader, stdout, stderr io.Wr return err } - cmd = exec.CommandContext(ctx, "bash", "-c", "dpkg-scanpackages --multiversion . | gzip > Packages.gz.tmp && mv Packages.gz.tmp Packages.gz") - cmd.Stdout = stdout - cmd.Stderr = stderr - cmd.Dir = opts.PackageDir - err = cmd.Run() - if err != nil { - return fmt.Errorf("dpkg-scanpackages: %w", err) - } - return nil } 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 }