Skip to content

Commit 2eb0fd6

Browse files
committed
Refactor: Remove redundant validateSha field and methods from ContainerCommand
1 parent a049673 commit 2eb0fd6

File tree

2 files changed

+36
-19
lines changed

2 files changed

+36
-19
lines changed

artifactory/commands/container/buildcreate.go

Lines changed: 36 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,9 @@
11
package container
22

33
import (
4+
"github.com/jfrog/jfrog-client-go/utils/errorutils"
5+
"strings"
6+
47
"github.com/jfrog/jfrog-cli-core/v2/artifactory/utils"
58
"github.com/jfrog/jfrog-cli-core/v2/artifactory/utils/container"
69
"github.com/jfrog/jfrog-cli-core/v2/common/build"
@@ -17,7 +20,7 @@ func NewBuildDockerCreateCommand() *BuildDockerCreateCommand {
1720
}
1821

1922
// Set tag and manifest sha256 of an image in Artifactory.
20-
// This file can be generated by Kaniko using the'--image-name-with-digest-file' flag
23+
// This file can be generated by Kaniko using the '--image-name-with-digest-file' flag
2124
// or by buildx CLI using '--metadata-file' flag.
2225
// Tag and Sha256 will be used later on to search the image in Artifactory.
2326
func (bdc *BuildDockerCreateCommand) SetImageNameWithDigest(filePath string) (err error) {
@@ -53,15 +56,23 @@ func (bdc *BuildDockerCreateCommand) Run() error {
5356
if err = build.SaveBuildGeneralDetails(buildName, buildNumber, project); err != nil {
5457
return err
5558
}
56-
builder, err := container.NewRemoteAgentBuildInfoBuilder(bdc.image, repo, buildName, buildNumber, project, serviceManager, bdc.manifestSha256)
57-
if err != nil {
58-
return err
59-
}
60-
buildInfo, err := builder.Build(bdc.BuildConfiguration().GetModule())
61-
if err != nil {
62-
return err
59+
60+
// Handle multiple tags from comma-separated image name
61+
images := SplitMultiTagDockerImageStringWithComma(bdc.image)
62+
for _, image := range images {
63+
builder, err := container.NewRemoteAgentBuildInfoBuilder(image, repo, buildName, buildNumber, project, serviceManager, bdc.manifestSha256)
64+
if err != nil {
65+
return errorutils.CheckErrorf("build info creation failed: %s", err.Error())
66+
}
67+
buildInfo, err := builder.Build(bdc.BuildConfiguration().GetModule())
68+
if err != nil {
69+
return errorutils.CheckErrorf("build info creation failed: %s", err.Error())
70+
}
71+
if err := build.SaveBuildInfo(buildName, buildNumber, project, buildInfo); err != nil {
72+
return errorutils.CheckErrorf("failed to save build info for '%s/%s': %s", buildName, buildNumber, err.Error())
73+
}
6374
}
64-
return build.SaveBuildInfo(buildName, buildNumber, project, buildInfo)
75+
return nil
6576
}
6677

6778
func (bdc *BuildDockerCreateCommand) CommandName() string {
@@ -71,3 +82,19 @@ func (bdc *BuildDockerCreateCommand) CommandName() string {
7182
func (bdc *BuildDockerCreateCommand) ServerDetails() (*config.ServerDetails, error) {
7283
return bdc.serverDetails, nil
7384
}
85+
86+
func SplitMultiTagDockerImageStringWithComma(image *container.Image) []*container.Image {
87+
multiDockerImage := image.Name()
88+
89+
tags := strings.Split(multiDockerImage, ",")
90+
images := make([]*container.Image, 0, len(tags))
91+
for _, tag := range tags {
92+
trimmed := strings.TrimSpace(tag)
93+
if trimmed == "" {
94+
continue
95+
}
96+
nextImage := container.NewImage(trimmed)
97+
images = append(images, nextImage)
98+
}
99+
return images
100+
}

artifactory/commands/container/containermanagercommand.go

Lines changed: 0 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,6 @@ type ContainerCommand struct {
1111
skipLogin bool
1212
cmdParams []string
1313
containerManagerType container.ContainerManagerType
14-
validateSha bool
1514
}
1615

1716
func NewContainerManagerCommand(containerManagerType container.ContainerManagerType) *ContainerCommand {
@@ -30,15 +29,6 @@ func (cm *ContainerCommand) SetCmdParams(cmdParams []string) *ContainerCommand {
3029
return cm
3130
}
3231

33-
func (cm *ContainerCommand) SetValidateSha(validateSha bool) *ContainerCommand {
34-
cm.validateSha = validateSha
35-
return cm
36-
}
37-
38-
func (cm *ContainerCommand) IsValidateSha() bool {
39-
return cm.validateSha
40-
}
41-
4232
func (cm *ContainerCommand) PerformLogin(serverDetails *config.ServerDetails, containerManagerType container.ContainerManagerType) error {
4333
if !cm.skipLogin {
4434
// Exclude refreshable tokens when working with external tools (build tools, curl, etc)

0 commit comments

Comments
 (0)