From a16ca93790c581b4461ef7b38bbadfb3da65151e Mon Sep 17 00:00:00 2001 From: Kanishk Date: Fri, 17 Oct 2025 11:47:22 +0530 Subject: [PATCH] Deleted docker test utils --- docker_test.go | 18 ++-- go.mod | 4 +- go.sum | 4 +- inttestutils/docker.go | 4 +- utils/tests/docker.go | 192 ----------------------------------------- 5 files changed, 15 insertions(+), 207 deletions(-) delete mode 100644 utils/tests/docker.go diff --git a/docker_test.go b/docker_test.go index 5271b3245..ad4281441 100644 --- a/docker_test.go +++ b/docker_test.go @@ -3,6 +3,7 @@ package main import ( "context" "fmt" + tests2 "github.com/jfrog/jfrog-cli-artifactory/utils/tests" "os" "os/exec" "path" @@ -27,7 +28,6 @@ import ( coreTests "github.com/jfrog/jfrog-cli-core/v2/utils/tests" "github.com/jfrog/jfrog-cli/inttestutils" "github.com/jfrog/jfrog-cli/utils/tests" - commonTests "github.com/jfrog/jfrog-cli/utils/tests" "github.com/jfrog/jfrog-client-go/auth" clientUtils "github.com/jfrog/jfrog-client-go/utils" "github.com/jfrog/jfrog-client-go/utils/io/fileutils" @@ -112,7 +112,7 @@ func TestContainerPushWithDetailedSummary(t *testing.T) { func() { imageTag, err := inttestutils.BuildTestImage(imageName+":1", "", repo, containerManager) assert.NoError(t, err) - defer commonTests.DeleteTestImage(t, imageTag, containerManager) + defer tests2.DeleteTestImage(t, imageTag, containerManager) // Testing detailed summary without build-info pushCommand := coreContainer.NewPushCommand(containerManager) pushCommand.SetThreads(1).SetDetailedSummary(true).SetCmdParams([]string{"push", imageTag}).SetBuildConfiguration(new(build.BuildConfiguration)).SetRepo(tests.DockerLocalRepo).SetServerDetails(serverDetails).SetImageTag(imageTag) @@ -165,7 +165,7 @@ func TestContainerPushWithMultipleSlash(t *testing.T) { func runPushTest(containerManager container.ContainerManagerType, imageName, module string, withModule bool, t *testing.T, repo string) { imageTag, err := inttestutils.BuildTestImage(imageName+":1", "", repo, containerManager) assert.NoError(t, err) - defer commonTests.DeleteTestImage(t, imageTag, containerManager) + defer tests2.DeleteTestImage(t, imageTag, containerManager) buildNumber := "1" if withModule { @@ -369,7 +369,7 @@ func TestContainerPushBuildNameNumberFromEnv(t *testing.T) { func() { imageTag, err := inttestutils.BuildTestImage(tests.DockerImageName+":1", "", tests.DockerLocalRepo, containerManager) assert.NoError(t, err) - defer commonTests.DeleteTestImage(t, imageTag, containerManager) + defer tests2.DeleteTestImage(t, imageTag, containerManager) buildNumber := "1" setEnvCallBack := clientTestUtils.SetEnvWithCallbackAndAssert(t, coreutils.BuildName, tests.DockerBuildName) defer setEnvCallBack() @@ -392,7 +392,7 @@ func TestContainerPull(t *testing.T) { func() { imageName, err := inttestutils.BuildTestImage(tests.DockerImageName+":1", "", tests.DockerLocalRepo, containerManager) assert.NoError(t, err) - defer commonTests.DeleteTestImage(t, imageName, containerManager) + defer tests2.DeleteTestImage(t, imageName, containerManager) for _, repo := range []string{tests.DockerVirtualRepo, tests.DockerLocalRepo} { // Push container image @@ -432,7 +432,7 @@ func TestContainerFatManifestPull(t *testing.T) { func() { // Pull container image imageTag := path.Join(*tests.ContainerRegistry, dockerRepo, imageName+":2.2") - defer commonTests.DeleteTestImage(t, imageTag, containerManager) + defer tests2.DeleteTestImage(t, imageTag, containerManager) runCmdWithRetries(t, jfrogRtCliTask(containerManager.String()+"-pull", imageTag, dockerRepo, "--build-name="+tests.DockerBuildName, "--build-number="+buildNumber)) runRt(t, "build-publish", tests.DockerBuildName, buildNumber) @@ -461,7 +461,7 @@ func TestDockerPromote(t *testing.T) { // Build and push image imageName, err := inttestutils.BuildTestImage(tests.DockerImageName+":1", "", tests.DockerLocalRepo, container.DockerClient) assert.NoError(t, err) - defer commonTests.DeleteTestImage(t, imageName, container.DockerClient) + defer tests2.DeleteTestImage(t, imageName, container.DockerClient) // Push image runCmdWithRetries(t, jfrogRtCliTask("docker-push", imageName, tests.DockerLocalRepo)) @@ -596,13 +596,13 @@ func TestNativeDockerPushPull(t *testing.T) { runRt(t, "build-publish", tests.DockerBuildName, pushBuildNumber) imagePath := path.Join(tests.DockerLocalRepo, tests.DockerImageName, pushBuildNumber) + "/" validateContainerBuild(tests.DockerBuildName, pushBuildNumber, imagePath, module, 7, 5, 7, t) - commonTests.DeleteTestImage(t, image, container.DockerClient) + tests2.DeleteTestImage(t, image, container.DockerClient) runCmdWithRetries(t, jfCliTask("docker", "-D", "pull", image, "--build-name="+tests.DockerBuildName, "--build-number="+pullBuildNumber, "--module="+module)) runRt(t, "build-publish", tests.DockerBuildName, pullBuildNumber) imagePath = path.Join(tests.DockerLocalRepo, tests.DockerImageName, pullBuildNumber) + "/" validateContainerBuild(tests.DockerBuildName, pullBuildNumber, imagePath, module, 0, 7, 0, t) - commonTests.DeleteTestImage(t, image, container.DockerClient) + tests2.DeleteTestImage(t, image, container.DockerClient) inttestutils.ContainerTestCleanup(t, serverDetails, artHttpDetails, tests.DockerImageName, tests.DockerBuildName, tests.DockerLocalRepo) } diff --git a/go.mod b/go.mod index f1b449a4f..e7ee11eaf 100644 --- a/go.mod +++ b/go.mod @@ -19,7 +19,7 @@ require ( github.com/jfrog/build-info-go v1.12.0 github.com/jfrog/gofrog v1.7.6 github.com/jfrog/jfrog-cli-application v1.0.1 - github.com/jfrog/jfrog-cli-artifactory v0.7.3-0.20251015052652-84ea3afaf439 + github.com/jfrog/jfrog-cli-artifactory v0.7.3-0.20251017072454-f83a03ee98d6 github.com/jfrog/jfrog-cli-core/v2 v2.60.1-0.20251015045218-1a38c9e47097 github.com/jfrog/jfrog-cli-platform-services v1.10.0 github.com/jfrog/jfrog-cli-security v1.21.8 @@ -250,7 +250,7 @@ require ( //replace github.com/jfrog/build-info-go => github.com/jfrog/build-info-go v1.8.9-0.20251006061821-8b1be6a65215 -//replace github.com/jfrog/jfrog-cli-artifactory => github.com/fluxxBot/jfrog-cli-artifactory v0.0.0-20251008152604-32538b00579c +//replace github.com/jfrog/jfrog-cli-artifactory => github.com/fluxxBot/jfrog-cli-artifactory v0.0.0-20251017061455-6a03988302bf //replace github.com/jfrog/jfrog-cli-core/v2 => github.com/fluxxBot/jfrog-cli-core/v2 v2.58.1-0.20251008152439-da488ef26725 diff --git a/go.sum b/go.sum index 4637bff81..acee0099a 100644 --- a/go.sum +++ b/go.sum @@ -365,8 +365,8 @@ github.com/jfrog/jfrog-apps-config v1.0.1 h1:mtv6k7g8A8BVhlHGlSveapqf4mJfonwvXYL github.com/jfrog/jfrog-apps-config v1.0.1/go.mod h1:8AIIr1oY9JuH5dylz2S6f8Ym2MaadPLR6noCBO4C22w= github.com/jfrog/jfrog-cli-application v1.0.1 h1:PiiSVKFFs8VLAwjCe2JrIKlX7LmARFt+r8BLTupWIDc= github.com/jfrog/jfrog-cli-application v1.0.1/go.mod h1:gjV6Q2hhoMe3FF77GFiTyIRLSHokpDrkVj0GvYM+1Y4= -github.com/jfrog/jfrog-cli-artifactory v0.7.3-0.20251015052652-84ea3afaf439 h1:3B3JGujNYFpHQ69pjaPpRf0Ugny0UCU35whkcmGqaHc= -github.com/jfrog/jfrog-cli-artifactory v0.7.3-0.20251015052652-84ea3afaf439/go.mod h1:nT050Wb18tTlfcQHefyMENzFOz9Vdym6WP0Z3Nc2qHc= +github.com/jfrog/jfrog-cli-artifactory v0.7.3-0.20251017072454-f83a03ee98d6 h1:k+L1EByW0oAjbl2GzBKpPjQ/V9HV/22WfXqR+opegnk= +github.com/jfrog/jfrog-cli-artifactory v0.7.3-0.20251017072454-f83a03ee98d6/go.mod h1:nT050Wb18tTlfcQHefyMENzFOz9Vdym6WP0Z3Nc2qHc= github.com/jfrog/jfrog-cli-core/v2 v2.60.1-0.20251015045218-1a38c9e47097 h1:+W6BPxJ0nPtlQ6l6nmypW1eEANoVPiN8HDR4kQJA8uI= github.com/jfrog/jfrog-cli-core/v2 v2.60.1-0.20251015045218-1a38c9e47097/go.mod h1:UOeOwEEmRIi57cRwghN5OBVoqkJieYQQfLpeqw8Yv38= github.com/jfrog/jfrog-cli-platform-services v1.10.0 h1:O+N/VAF+QjFvq9xkHpmzKLcdl9aJu3IP204Su0L14rw= diff --git a/inttestutils/docker.go b/inttestutils/docker.go index 61f5be1aa..efc7905a4 100644 --- a/inttestutils/docker.go +++ b/inttestutils/docker.go @@ -1,6 +1,7 @@ package inttestutils import ( + tests2 "github.com/jfrog/jfrog-cli-artifactory/utils/tests" "path" "path/filepath" "strings" @@ -14,7 +15,6 @@ import ( "github.com/jfrog/jfrog-cli-core/v2/artifactory/utils" "github.com/jfrog/jfrog-cli-core/v2/utils/config" "github.com/jfrog/jfrog-cli/utils/tests" - commonTests "github.com/jfrog/jfrog-cli/utils/tests" "github.com/jfrog/jfrog-client-go/utils/io/httputils" "github.com/jfrog/jfrog-client-go/utils/log" "github.com/stretchr/testify/assert" @@ -24,7 +24,7 @@ func BuildTestImage(imageName, dockerfileName, repo string, containerManagerType log.Info("Building image", imageName, "with", containerManagerType.String()) imageName = path.Join(*tests.ContainerRegistry, repo, imageName) dockerFilePath := filepath.Join(filepath.FromSlash(tests.GetTestResourcesPath()), "docker") - imageBuilder := commonTests.NewBuildDockerImage(imageName, dockerFilePath, containerManagerType).SetDockerFileName(dockerfileName) + imageBuilder := tests2.NewBuildDockerImage(imageName, dockerFilePath, containerManagerType).SetDockerFileName(dockerfileName) return imageName, gofrogcmd.RunCmd(imageBuilder) } diff --git a/utils/tests/docker.go b/utils/tests/docker.go deleted file mode 100644 index cf3af77f0..000000000 --- a/utils/tests/docker.go +++ /dev/null @@ -1,192 +0,0 @@ -package tests - -import ( - "io" - "os/exec" - "path" - "testing" - - gofrogcmd "github.com/jfrog/gofrog/io" - container "github.com/jfrog/jfrog-cli-artifactory/artifactory/commands/ocicontainer" - "github.com/stretchr/testify/assert" -) - -// Image get parent image id command -type BuildDockerImage struct { - // The build command builds images from a Dockerfile and a context. - // A build's context is the set of files located in the specified PATH. - // The build process can refer to any of the files in the context. - // For example, The build can use a COPY instruction to reference a file in the context. - buildContext string - dockerFileName string - imageName string - containerManager container.ContainerManagerType -} - -func NewBuildDockerImage(imageTag, dockerFilePath string, containerManager container.ContainerManagerType) *BuildDockerImage { - return &BuildDockerImage{imageName: imageTag, buildContext: dockerFilePath, containerManager: containerManager} -} - -func (image *BuildDockerImage) SetDockerFileName(name string) *BuildDockerImage { - image.dockerFileName = name - return image -} - -func (image *BuildDockerImage) GetCmd() *exec.Cmd { - var cmd []string - cmd = append(cmd, "build") - cmd = append(cmd, "--tag", image.imageName) - if image.dockerFileName != "" { - cmd = append(cmd, "--file", path.Join(image.buildContext, image.dockerFileName)) - - } - cmd = append(cmd, image.buildContext) - return exec.Command(image.containerManager.String(), cmd...) -} - -func (image *BuildDockerImage) GetEnv() map[string]string { - return map[string]string{} -} - -func (image *BuildDockerImage) GetStdWriter() io.WriteCloser { - return nil -} - -func (image *BuildDockerImage) GetErrWriter() io.WriteCloser { - return nil -} - -// The ExecDockerImage command runs a new command in a running container. -type ExecDockerImage struct { - Args []string - errCloser io.WriteCloser - stdWriter io.WriteCloser - containerManager container.ContainerManagerType -} - -func NewExecDockerImage(containerManager container.ContainerManagerType, args ...string) *ExecDockerImage { - return &ExecDockerImage{Args: args, containerManager: containerManager} -} - -func (e *ExecDockerImage) GetCmd() *exec.Cmd { - var cmd []string - cmd = append(cmd, "exec") - cmd = append(cmd, e.Args...) - return exec.Command(e.containerManager.String(), cmd...) -} - -func (e *ExecDockerImage) GetEnv() map[string]string { - return map[string]string{} -} - -func (e *ExecDockerImage) GetStdWriter() io.WriteCloser { - return e.stdWriter -} - -func (e *ExecDockerImage) SetStdWriter(writer io.WriteCloser) { - e.stdWriter = writer -} - -func (e *ExecDockerImage) GetErrWriter() io.WriteCloser { - return e.errCloser -} - -func (e *ExecDockerImage) SetErrWriter(writer io.WriteCloser) { - e.errCloser = writer -} - -type RunDockerImage struct { - Args []string - containerManager container.ContainerManagerType -} - -func NewRunDockerImage(containerManager container.ContainerManagerType, args ...string) *RunDockerImage { - return &RunDockerImage{Args: args, containerManager: containerManager} -} - -func (run *RunDockerImage) GetCmd() *exec.Cmd { - var cmd []string - cmd = append(cmd, "run") - cmd = append(cmd, run.Args...) - return exec.Command(run.containerManager.String(), cmd...) -} - -func (run *RunDockerImage) GetEnv() map[string]string { - return map[string]string{} -} - -func (run *RunDockerImage) GetStdWriter() io.WriteCloser { - return nil -} - -func (run *RunDockerImage) GetErrWriter() io.WriteCloser { - return nil -} - -type DeleteDockerImage struct { - imageTag string - containerManager container.ContainerManagerType -} - -func NewDeleteDockerImage(imageTag string, containerManager container.ContainerManagerType) *DeleteDockerImage { - return &DeleteDockerImage{imageTag: imageTag, containerManager: containerManager} -} - -func (image *DeleteDockerImage) GetCmd() *exec.Cmd { - var cmd []string - cmd = append(cmd, "image") - cmd = append(cmd, "rm") - cmd = append(cmd, image.imageTag) - return exec.Command(image.containerManager.String(), cmd...) -} - -func (image *DeleteDockerImage) GetEnv() map[string]string { - return map[string]string{} -} - -func (image *DeleteDockerImage) GetStdWriter() io.WriteCloser { - return nil -} - -func (image *DeleteDockerImage) GetErrWriter() io.WriteCloser { - return nil -} - -type DeleteContainer struct { - containerName string - containerManager container.ContainerManagerType -} - -func NewDeleteContainer(containerName string, containerManager container.ContainerManagerType) *DeleteContainer { - return &DeleteContainer{containerName: containerName, containerManager: containerManager} -} - -func (image *DeleteContainer) GetCmd() *exec.Cmd { - var cmd []string - cmd = append(cmd, "rm") - cmd = append(cmd, "--force") - cmd = append(cmd, image.containerName) - return exec.Command(image.containerManager.String(), cmd...) -} - -func (image *DeleteContainer) GetEnv() map[string]string { - return map[string]string{} -} - -func (image *DeleteContainer) GetStdWriter() io.WriteCloser { - return nil -} - -func (image *DeleteContainer) GetErrWriter() io.WriteCloser { - return nil -} - -func DeleteTestImage(t *testing.T, imageTag string, containerManagerType container.ContainerManagerType) { - imageBuilder := NewDeleteDockerImage(imageTag, containerManagerType) - assert.NoError(t, gofrogcmd.RunCmd(imageBuilder)) -} - -func DeleteTestContainer(t *testing.T, containerName string, containerManagerType container.ContainerManagerType) { - containerDelete := NewDeleteContainer(containerName, containerManagerType) - assert.NoError(t, gofrogcmd.RunCmd(containerDelete)) -}