github.com/jfrog/jfrog-cli-core/v2@v2.51.0/artifactory/commands/container/buildcreate.go (about) 1 package container 2 3 import ( 4 "github.com/jfrog/jfrog-cli-core/v2/artifactory/utils" 5 "github.com/jfrog/jfrog-cli-core/v2/artifactory/utils/container" 6 "github.com/jfrog/jfrog-cli-core/v2/common/build" 7 "github.com/jfrog/jfrog-cli-core/v2/utils/config" 8 ) 9 10 type BuildDockerCreateCommand struct { 11 ContainerCommandBase 12 manifestSha256 string 13 } 14 15 func NewBuildDockerCreateCommand() *BuildDockerCreateCommand { 16 return &BuildDockerCreateCommand{} 17 } 18 19 // 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 21 // or by buildx CLI using '--metadata-file' flag. 22 // Tag and Sha256 will be used later on to search the image in Artifactory. 23 func (bdc *BuildDockerCreateCommand) SetImageNameWithDigest(filePath string) (err error) { 24 bdc.image, bdc.manifestSha256, err = container.GetImageTagWithDigest(filePath) 25 return 26 } 27 28 func (bdc *BuildDockerCreateCommand) Run() error { 29 if err := bdc.init(); err != nil { 30 return err 31 } 32 serverDetails, err := bdc.ServerDetails() 33 if err != nil { 34 return err 35 } 36 buildName, err := bdc.buildConfiguration.GetBuildName() 37 if err != nil { 38 return err 39 } 40 buildNumber, err := bdc.buildConfiguration.GetBuildNumber() 41 if err != nil { 42 return err 43 } 44 project := bdc.BuildConfiguration().GetProject() 45 serviceManager, err := utils.CreateServiceManager(serverDetails, -1, 0, false) 46 if err != nil { 47 return err 48 } 49 repo, err := bdc.GetRepo() 50 if err != nil { 51 return err 52 } 53 if err := build.SaveBuildGeneralDetails(buildName, buildNumber, project); err != nil { 54 return err 55 } 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 63 } 64 return build.SaveBuildInfo(buildName, buildNumber, project, buildInfo) 65 } 66 67 func (bdc *BuildDockerCreateCommand) CommandName() string { 68 return "rt_build_docker_create" 69 } 70 71 func (bdc *BuildDockerCreateCommand) ServerDetails() (*config.ServerDetails, error) { 72 return bdc.serverDetails, nil 73 }