github.com/jfrog/jfrog-cli-core/v2@v2.51.0/utils/gradle/utils.go (about) 1 package gradleutils 2 3 import ( 4 "fmt" 5 "github.com/jfrog/jfrog-cli-core/v2/common/build" 6 "github.com/jfrog/jfrog-cli-core/v2/common/project" 7 "github.com/jfrog/jfrog-cli-core/v2/utils/config" 8 "github.com/jfrog/jfrog-cli-core/v2/utils/coreutils" 9 "github.com/jfrog/jfrog-cli-core/v2/utils/dependencies" 10 "github.com/jfrog/jfrog-client-go/utils/errorutils" 11 "github.com/spf13/viper" 12 "path/filepath" 13 ) 14 15 const ( 16 usePlugin = "useplugin" 17 useWrapper = "usewrapper" 18 ) 19 20 func RunGradle(vConfig *viper.Viper, tasks []string, deployableArtifactsFile string, configuration *build.BuildConfiguration, threads int, disableDeploy bool) error { 21 buildInfoService := build.CreateBuildInfoService() 22 buildName, err := configuration.GetBuildName() 23 if err != nil { 24 return err 25 } 26 buildNumber, err := configuration.GetBuildNumber() 27 if err != nil { 28 return err 29 } 30 gradleBuild, err := buildInfoService.GetOrCreateBuildWithProject(buildName, buildNumber, configuration.GetProject()) 31 if err != nil { 32 return errorutils.CheckError(err) 33 } 34 gradleModule, err := gradleBuild.AddGradleModule("") 35 if err != nil { 36 return errorutils.CheckError(err) 37 } 38 props, wrapper, plugin, err := createGradleRunConfig(vConfig, deployableArtifactsFile, threads, disableDeploy) 39 if err != nil { 40 return err 41 } 42 dependencyLocalPath, err := getGradleDependencyLocalPath() 43 if err != nil { 44 return err 45 } 46 gradleModule.SetExtractorDetails(dependencyLocalPath, filepath.Join(coreutils.GetCliPersistentTempDirPath(), build.PropertiesTempPath), tasks, wrapper, plugin, dependencies.DownloadExtractor, props) 47 return coreutils.ConvertExitCodeError(gradleModule.CalcDependencies()) 48 } 49 50 func getGradleDependencyLocalPath() (string, error) { 51 dependenciesPath, err := config.GetJfrogDependenciesPath() 52 if err != nil { 53 return "", err 54 } 55 return filepath.Join(dependenciesPath, "gradle"), nil 56 } 57 58 func createGradleRunConfig(vConfig *viper.Viper, deployableArtifactsFile string, threads int, disableDeploy bool) (props map[string]string, wrapper, plugin bool, err error) { 59 wrapper = vConfig.GetBool(useWrapper) 60 if threads > 0 { 61 vConfig.Set(build.ForkCount, threads) 62 } 63 64 if disableDeploy { 65 setDeployFalse(vConfig) 66 } 67 props, err = build.CreateBuildInfoProps(deployableArtifactsFile, vConfig, project.Gradle) 68 if err != nil { 69 return 70 } 71 if deployableArtifactsFile != "" { 72 // Save the path to a temp file, where buildinfo project will write the deployable artifacts details. 73 props[build.DeployableArtifacts] = fmt.Sprint(vConfig.Get(build.DeployableArtifacts)) 74 } 75 plugin = vConfig.GetBool(usePlugin) 76 return 77 } 78 79 func setDeployFalse(vConfig *viper.Viper) { 80 vConfig.Set(build.DeployerPrefix+build.DeployArtifacts, "false") 81 if vConfig.GetString(build.DeployerPrefix+build.Url) == "" { 82 vConfig.Set(build.DeployerPrefix+build.Url, "http://empty_url") 83 } 84 if vConfig.GetString(build.DeployerPrefix+build.Repo) == "" { 85 vConfig.Set(build.DeployerPrefix+build.Repo, "empty_repo") 86 } 87 }