github.com/xgoffin/jenkins-library@v1.154.0/cmd/gradleExecuteBuild.go (about) 1 package cmd 2 3 import ( 4 "os" 5 6 "github.com/SAP/jenkins-library/pkg/command" 7 "github.com/SAP/jenkins-library/pkg/gradle" 8 "github.com/SAP/jenkins-library/pkg/log" 9 "github.com/SAP/jenkins-library/pkg/piperutils" 10 "github.com/SAP/jenkins-library/pkg/telemetry" 11 ) 12 13 type gradleExecuteBuildUtils interface { 14 command.ExecRunner 15 FileExists(filename string) (bool, error) 16 FileWrite(path string, content []byte, perm os.FileMode) error 17 FileRemove(path string) error 18 } 19 20 type gradleExecuteBuildUtilsBundle struct { 21 *command.Command 22 *piperutils.Files 23 } 24 25 func newGradleExecuteBuildUtils() gradleExecuteBuildUtils { 26 utils := gradleExecuteBuildUtilsBundle{ 27 Command: &command.Command{}, 28 Files: &piperutils.Files{}, 29 } 30 utils.Stdout(log.Writer()) 31 utils.Stderr(log.Writer()) 32 return &utils 33 } 34 35 func gradleExecuteBuild(config gradleExecuteBuildOptions, telemetryData *telemetry.CustomData) { 36 utils := newGradleExecuteBuildUtils() 37 err := runGradleExecuteBuild(&config, telemetryData, utils) 38 if err != nil { 39 log.Entry().WithError(err).Fatal("step execution failed: %w", err) 40 } 41 } 42 43 func runGradleExecuteBuild(config *gradleExecuteBuildOptions, telemetryData *telemetry.CustomData, utils gradleExecuteBuildUtils) error { 44 opt := &gradle.ExecuteOptions{ 45 BuildGradlePath: config.Path, 46 Task: config.Task, 47 CreateBOM: config.CreateBOM, 48 } 49 50 if err := gradle.Execute(opt, utils); err != nil { 51 log.Entry().WithError(err).Errorln("build.gradle execution was failed: %w", err) 52 return err 53 } 54 55 return nil 56 }