You've already forked sap-jenkins-library
mirror of
https://github.com/SAP/jenkins-library.git
synced 2025-09-16 09:26:22 +02:00
errorcause and remove telemetry warnings (#4951)
This commit is contained in:
@@ -11,14 +11,16 @@ import (
|
||||
|
||||
func abapAddonAssemblyKitCheck(config abapAddonAssemblyKitCheckOptions, telemetryData *telemetry.CustomData, commonPipelineEnvironment *abapAddonAssemblyKitCheckCommonPipelineEnvironment) {
|
||||
utils := aakaas.NewAakBundle()
|
||||
telemetryData.BuildTool = "AAKaaS"
|
||||
|
||||
err := runAbapAddonAssemblyKitCheck(&config, telemetryData, utils, commonPipelineEnvironment)
|
||||
err := runAbapAddonAssemblyKitCheck(&config, utils, commonPipelineEnvironment)
|
||||
if err != nil {
|
||||
telemetryData.ErrorCode = err.Error()
|
||||
log.Entry().WithError(err).Fatal("step execution failed")
|
||||
}
|
||||
}
|
||||
|
||||
func runAbapAddonAssemblyKitCheck(config *abapAddonAssemblyKitCheckOptions, telemetryData *telemetry.CustomData, utils aakaas.AakUtils, commonPipelineEnvironment *abapAddonAssemblyKitCheckCommonPipelineEnvironment) error {
|
||||
func runAbapAddonAssemblyKitCheck(config *abapAddonAssemblyKitCheckOptions, utils aakaas.AakUtils, commonPipelineEnvironment *abapAddonAssemblyKitCheckCommonPipelineEnvironment) error {
|
||||
|
||||
log.Entry().Info("╔═══════════════════════════╗")
|
||||
log.Entry().Info("║ abapAddonAssemblyKitCheck ║")
|
||||
|
@@ -11,12 +11,14 @@ import (
|
||||
|
||||
func abapAddonAssemblyKitCheckCVs(config abapAddonAssemblyKitCheckCVsOptions, telemetryData *telemetry.CustomData, cpe *abapAddonAssemblyKitCheckCVsCommonPipelineEnvironment) {
|
||||
utils := aakaas.NewAakBundle()
|
||||
if err := runAbapAddonAssemblyKitCheckCVs(&config, telemetryData, &utils, cpe); err != nil {
|
||||
telemetryData.BuildTool = "AAKaaS"
|
||||
if err := runAbapAddonAssemblyKitCheckCVs(&config, &utils, cpe); err != nil {
|
||||
telemetryData.ErrorCode = err.Error()
|
||||
log.Entry().WithError(err).Fatal("step execution failed")
|
||||
}
|
||||
}
|
||||
|
||||
func runAbapAddonAssemblyKitCheckCVs(config *abapAddonAssemblyKitCheckCVsOptions, telemetryData *telemetry.CustomData, utils *aakaas.AakUtils, cpe *abapAddonAssemblyKitCheckCVsCommonPipelineEnvironment) error {
|
||||
func runAbapAddonAssemblyKitCheckCVs(config *abapAddonAssemblyKitCheckCVsOptions, utils *aakaas.AakUtils, cpe *abapAddonAssemblyKitCheckCVsCommonPipelineEnvironment) error {
|
||||
|
||||
log.Entry().Info("╔══════════════════════════════╗")
|
||||
log.Entry().Info("║ abapAddonAssemblyKitCheckCVs ║")
|
||||
|
@@ -22,7 +22,7 @@ func TestCheckCVsStep(t *testing.T) {
|
||||
config.Password = "dummyPassword"
|
||||
t.Run("step success", func(t *testing.T) {
|
||||
config.AddonDescriptorFileName = "success"
|
||||
err := runAbapAddonAssemblyKitCheckCVs(&config, nil, &utils, &cpe)
|
||||
err := runAbapAddonAssemblyKitCheckCVs(&config, &utils, &cpe)
|
||||
assert.NoError(t, err, "Did not expect error")
|
||||
var addonDescriptorFinal abaputils.AddonDescriptor
|
||||
err = json.Unmarshal([]byte(cpe.abap.addonDescriptor), &addonDescriptorFinal)
|
||||
@@ -34,13 +34,13 @@ func TestCheckCVsStep(t *testing.T) {
|
||||
})
|
||||
t.Run("step error - in validate(no CommitID)", func(t *testing.T) {
|
||||
config.AddonDescriptorFileName = "noCommitID"
|
||||
err := runAbapAddonAssemblyKitCheckCVs(&config, nil, &utils, &cpe)
|
||||
err := runAbapAddonAssemblyKitCheckCVs(&config, &utils, &cpe)
|
||||
assert.Error(t, err, "Must end with error")
|
||||
assert.Contains(t, err.Error(), "CommitID missing in repo")
|
||||
})
|
||||
t.Run("step error - in ReadAddonDescriptor", func(t *testing.T) {
|
||||
config.AddonDescriptorFileName = "failing"
|
||||
err := runAbapAddonAssemblyKitCheckCVs(&config, nil, &utils, &cpe)
|
||||
err := runAbapAddonAssemblyKitCheckCVs(&config, &utils, &cpe)
|
||||
assert.Error(t, err, "Must end with error")
|
||||
assert.Contains(t, "error in ReadAddonDescriptor", err.Error())
|
||||
})
|
||||
@@ -48,7 +48,7 @@ func TestCheckCVsStep(t *testing.T) {
|
||||
config.AddonDescriptorFileName = "success"
|
||||
bundle.SetBody("ErrorBody")
|
||||
bundle.SetError("error during validation")
|
||||
err := runAbapAddonAssemblyKitCheckCVs(&config, nil, &utils, &cpe)
|
||||
err := runAbapAddonAssemblyKitCheckCVs(&config, &utils, &cpe)
|
||||
assert.Error(t, err, "Must end with error")
|
||||
})
|
||||
}
|
||||
|
@@ -11,12 +11,13 @@ import (
|
||||
|
||||
func abapAddonAssemblyKitCheckPV(config abapAddonAssemblyKitCheckPVOptions, telemetryData *telemetry.CustomData, cpe *abapAddonAssemblyKitCheckPVCommonPipelineEnvironment) {
|
||||
utils := aakaas.NewAakBundle()
|
||||
// error situations should stop execution through log.Entry().Fatal() call which leads to an os.Exit(1) in the end
|
||||
if err := runAbapAddonAssemblyKitCheckPV(&config, telemetryData, utils, cpe); err != nil {
|
||||
telemetryData.BuildTool = "AAKaaS"
|
||||
if err := runAbapAddonAssemblyKitCheckPV(&config, utils, cpe); err != nil {
|
||||
telemetryData.ErrorCode = err.Error()
|
||||
log.Entry().WithError(err).Fatal("step execution failed")
|
||||
}
|
||||
}
|
||||
func runAbapAddonAssemblyKitCheckPV(config *abapAddonAssemblyKitCheckPVOptions, telemetryData *telemetry.CustomData, utils aakaas.AakUtils, cpe *abapAddonAssemblyKitCheckPVCommonPipelineEnvironment) error {
|
||||
func runAbapAddonAssemblyKitCheckPV(config *abapAddonAssemblyKitCheckPVOptions, utils aakaas.AakUtils, cpe *abapAddonAssemblyKitCheckPVCommonPipelineEnvironment) error {
|
||||
|
||||
log.Entry().Info("╔═════════════════════════════╗")
|
||||
log.Entry().Info("║ abapAddonAssemblyKitCheckPV ║")
|
||||
|
@@ -22,7 +22,7 @@ func TestCheckPVStep(t *testing.T) {
|
||||
config.Password = "dummyPassword"
|
||||
t.Run("step success", func(t *testing.T) {
|
||||
config.AddonDescriptorFileName = "success"
|
||||
err := runAbapAddonAssemblyKitCheckPV(&config, nil, utils, &cpe)
|
||||
err := runAbapAddonAssemblyKitCheckPV(&config, utils, &cpe)
|
||||
assert.NoError(t, err, "Did not expect error")
|
||||
var addonDescriptorFinal abaputils.AddonDescriptor
|
||||
err = json.Unmarshal([]byte(cpe.abap.addonDescriptor), &addonDescriptorFinal)
|
||||
@@ -33,7 +33,7 @@ func TestCheckPVStep(t *testing.T) {
|
||||
})
|
||||
t.Run("step error - in ReadAddonDescriptor", func(t *testing.T) {
|
||||
config.AddonDescriptorFileName = "failing"
|
||||
err := runAbapAddonAssemblyKitCheckPV(&config, nil, utils, &cpe)
|
||||
err := runAbapAddonAssemblyKitCheckPV(&config, utils, &cpe)
|
||||
assert.Error(t, err, "Did expect error")
|
||||
assert.Equal(t, err.Error(), "error in ReadAddonDescriptor")
|
||||
})
|
||||
@@ -41,7 +41,7 @@ func TestCheckPVStep(t *testing.T) {
|
||||
config.AddonDescriptorFileName = "success"
|
||||
bundle.SetBody("ErrorBody")
|
||||
bundle.SetError("error during validation")
|
||||
err := runAbapAddonAssemblyKitCheckPV(&config, nil, utils, &cpe)
|
||||
err := runAbapAddonAssemblyKitCheckPV(&config, utils, &cpe)
|
||||
assert.Error(t, err, "Did expect error")
|
||||
})
|
||||
}
|
||||
|
@@ -37,7 +37,7 @@ func TestRunAbapAddonAssemblyKitCheck(t *testing.T) {
|
||||
},
|
||||
}
|
||||
|
||||
err := runAbapAddonAssemblyKitCheck(&config, nil, utils, &cpe)
|
||||
err := runAbapAddonAssemblyKitCheck(&config, utils, &cpe)
|
||||
|
||||
assert.NoError(t, err)
|
||||
})
|
||||
@@ -53,7 +53,7 @@ func TestRunAbapAddonAssemblyKitCheck(t *testing.T) {
|
||||
},
|
||||
}
|
||||
|
||||
err := runAbapAddonAssemblyKitCheck(&config, nil, utils, &cpe)
|
||||
err := runAbapAddonAssemblyKitCheck(&config, utils, &cpe)
|
||||
|
||||
assert.EqualError(t, err, "addonDescriptor must contain at least one software component repository")
|
||||
})
|
||||
|
@@ -19,15 +19,17 @@ func abapAddonAssemblyKitCreateTargetVector(config abapAddonAssemblyKitCreateTar
|
||||
c.Stderr(log.Writer())
|
||||
|
||||
client := piperhttp.Client{}
|
||||
telemetryData.BuildTool = "AAKaaS"
|
||||
|
||||
// error situations should stop execution through log.Entry().Fatal() call which leads to an os.Exit(1) in the end
|
||||
err := runAbapAddonAssemblyKitCreateTargetVector(&config, telemetryData, &client, cpe)
|
||||
err := runAbapAddonAssemblyKitCreateTargetVector(&config, &client, cpe)
|
||||
if err != nil {
|
||||
telemetryData.ErrorCode = err.Error()
|
||||
log.Entry().WithError(err).Fatal("step execution failed")
|
||||
}
|
||||
}
|
||||
|
||||
func runAbapAddonAssemblyKitCreateTargetVector(config *abapAddonAssemblyKitCreateTargetVectorOptions, telemetryData *telemetry.CustomData, client piperhttp.Sender, cpe *abapAddonAssemblyKitCreateTargetVectorCommonPipelineEnvironment) error {
|
||||
func runAbapAddonAssemblyKitCreateTargetVector(config *abapAddonAssemblyKitCreateTargetVectorOptions, client piperhttp.Sender, cpe *abapAddonAssemblyKitCreateTargetVectorCommonPipelineEnvironment) error {
|
||||
conn := new(abapbuild.Connector)
|
||||
if err := conn.InitAAKaaS(config.AbapAddonAssemblyKitEndpoint, config.Username, config.Password, client, config.AbapAddonAssemblyKitOriginHash, config.AbapAddonAssemblyKitCertificateFile, config.AbapAddonAssemblyKitCertificatePass); err != nil {
|
||||
return err
|
||||
|
@@ -45,7 +45,7 @@ func TestCreateTargetVectorStep(t *testing.T) {
|
||||
|
||||
t.Run("step success test", func(t *testing.T) {
|
||||
//act
|
||||
err := runAbapAddonAssemblyKitCreateTargetVector(&config, nil, client, &cpe)
|
||||
err := runAbapAddonAssemblyKitCreateTargetVector(&config, client, &cpe)
|
||||
//assert
|
||||
assert.NoError(t, err, "Did not expect error")
|
||||
|
||||
@@ -62,7 +62,7 @@ func TestCreateTargetVectorStep(t *testing.T) {
|
||||
Error: errors.New("dummy"),
|
||||
}
|
||||
//act
|
||||
err := runAbapAddonAssemblyKitCreateTargetVector(&config, nil, client, &cpe)
|
||||
err := runAbapAddonAssemblyKitCreateTargetVector(&config, client, &cpe)
|
||||
//assert
|
||||
assert.Error(t, err, "Must end with error")
|
||||
})
|
||||
@@ -77,7 +77,7 @@ func TestCreateTargetVectorStep(t *testing.T) {
|
||||
adoDesc, _ := json.Marshal(addonDescriptor)
|
||||
config.AddonDescriptor = string(adoDesc)
|
||||
//act
|
||||
err := runAbapAddonAssemblyKitCreateTargetVector(&config, nil, client, &cpe)
|
||||
err := runAbapAddonAssemblyKitCreateTargetVector(&config, client, &cpe)
|
||||
//assert
|
||||
assert.Error(t, err, "Must end with error")
|
||||
})
|
||||
@@ -104,7 +104,7 @@ func TestCreateTargetVectorStep(t *testing.T) {
|
||||
adoDesc, _ := json.Marshal(addonDescriptor)
|
||||
config.AddonDescriptor = string(adoDesc)
|
||||
//act
|
||||
err := runAbapAddonAssemblyKitCreateTargetVector(&config, nil, client, &cpe)
|
||||
err := runAbapAddonAssemblyKitCreateTargetVector(&config, client, &cpe)
|
||||
//assert
|
||||
assert.Error(t, err, "Must end with error")
|
||||
})
|
||||
|
@@ -13,14 +13,15 @@ import (
|
||||
|
||||
func abapAddonAssemblyKitPublishTargetVector(config abapAddonAssemblyKitPublishTargetVectorOptions, telemetryData *telemetry.CustomData) {
|
||||
utils := aakaas.NewAakBundleWithTime(time.Duration(config.MaxRuntimeInMinutes), time.Duration(config.PollingIntervalInSeconds))
|
||||
telemetryData.BuildTool = "AAKaaS"
|
||||
|
||||
// error situations should stop execution through log.Entry().Fatal() call which leads to an os.Exit(1) in the end
|
||||
if err := runAbapAddonAssemblyKitPublishTargetVector(&config, telemetryData, &utils); err != nil {
|
||||
if err := runAbapAddonAssemblyKitPublishTargetVector(&config, &utils); err != nil {
|
||||
telemetryData.ErrorCode = err.Error()
|
||||
log.Entry().WithError(err).Fatal("step execution failed")
|
||||
}
|
||||
}
|
||||
|
||||
func runAbapAddonAssemblyKitPublishTargetVector(config *abapAddonAssemblyKitPublishTargetVectorOptions, telemetryData *telemetry.CustomData, utils *aakaas.AakUtils) error {
|
||||
func runAbapAddonAssemblyKitPublishTargetVector(config *abapAddonAssemblyKitPublishTargetVectorOptions, utils *aakaas.AakUtils) error {
|
||||
|
||||
conn := new(abapbuild.Connector)
|
||||
if err := conn.InitAAKaaS(config.AbapAddonAssemblyKitEndpoint, config.Username, config.Password, *utils, config.AbapAddonAssemblyKitOriginHash, config.AbapAddonAssemblyKitCertificateFile, config.AbapAddonAssemblyKitCertificatePass); err != nil {
|
||||
|
@@ -37,7 +37,7 @@ func TestPublishTargetVectorStep(t *testing.T) {
|
||||
utils := bundle.GetUtils()
|
||||
|
||||
//act
|
||||
err := runAbapAddonAssemblyKitPublishTargetVector(&config, nil, &utils)
|
||||
err := runAbapAddonAssemblyKitPublishTargetVector(&config, &utils)
|
||||
//assert
|
||||
assert.NoError(t, err, "Did not expect error")
|
||||
})
|
||||
@@ -54,7 +54,7 @@ func TestPublishTargetVectorStep(t *testing.T) {
|
||||
utils := bundle.GetUtils()
|
||||
|
||||
//act
|
||||
err := runAbapAddonAssemblyKitPublishTargetVector(&config, nil, &utils)
|
||||
err := runAbapAddonAssemblyKitPublishTargetVector(&config, &utils)
|
||||
//assert
|
||||
assert.NoError(t, err, "Did not expect error")
|
||||
})
|
||||
@@ -67,7 +67,7 @@ func TestPublishTargetVectorStep(t *testing.T) {
|
||||
utils := bundle.GetUtils()
|
||||
|
||||
//act
|
||||
err := runAbapAddonAssemblyKitPublishTargetVector(&config, nil, &utils)
|
||||
err := runAbapAddonAssemblyKitPublishTargetVector(&config, &utils)
|
||||
//assert
|
||||
assert.Error(t, err, "Must end with error")
|
||||
})
|
||||
@@ -80,7 +80,7 @@ func TestPublishTargetVectorStep(t *testing.T) {
|
||||
utils := bundle.GetUtils()
|
||||
|
||||
//act
|
||||
err := runAbapAddonAssemblyKitPublishTargetVector(&config, nil, &utils)
|
||||
err := runAbapAddonAssemblyKitPublishTargetVector(&config, &utils)
|
||||
//assert
|
||||
assert.Error(t, err, "Must end with error")
|
||||
})
|
||||
|
@@ -23,15 +23,15 @@ func abapAddonAssemblyKitRegisterPackages(config abapAddonAssemblyKitRegisterPac
|
||||
c.Stderr(log.Writer())
|
||||
|
||||
client := piperhttp.Client{}
|
||||
telemetryData.BuildTool = "AAKaaS"
|
||||
|
||||
// error situations should stop execution through log.Entry().Fatal() call which leads to an os.Exit(1) in the end
|
||||
err := runAbapAddonAssemblyKitRegisterPackages(&config, telemetryData, &client, cpe, reader)
|
||||
if err != nil {
|
||||
if err := runAbapAddonAssemblyKitRegisterPackages(&config, &client, cpe, reader); err != nil {
|
||||
telemetryData.ErrorCode = err.Error()
|
||||
log.Entry().WithError(err).Fatal("step execution failed")
|
||||
}
|
||||
}
|
||||
|
||||
func runAbapAddonAssemblyKitRegisterPackages(config *abapAddonAssemblyKitRegisterPackagesOptions, telemetryData *telemetry.CustomData, client piperhttp.Sender,
|
||||
func runAbapAddonAssemblyKitRegisterPackages(config *abapAddonAssemblyKitRegisterPackagesOptions, client piperhttp.Sender,
|
||||
cpe *abapAddonAssemblyKitRegisterPackagesCommonPipelineEnvironment, fileReader readFile) error {
|
||||
|
||||
var addonDescriptor abaputils.AddonDescriptor
|
||||
|
@@ -47,7 +47,7 @@ func TestRegisterPackagesStep(t *testing.T) {
|
||||
}
|
||||
adoDesc, _ := json.Marshal(addonDescriptor)
|
||||
config.AddonDescriptor = string(adoDesc)
|
||||
err := runAbapAddonAssemblyKitRegisterPackages(&config, nil, client, &cpe, mockReader)
|
||||
err := runAbapAddonAssemblyKitRegisterPackages(&config, client, &cpe, mockReader)
|
||||
|
||||
assert.NoError(t, err, "Did not expect error")
|
||||
var addonDescriptorFinal abaputils.AddonDescriptor
|
||||
@@ -70,7 +70,7 @@ func TestRegisterPackagesStep(t *testing.T) {
|
||||
}
|
||||
adoDesc, _ := json.Marshal(addonDescriptor)
|
||||
config.AddonDescriptor = string(adoDesc)
|
||||
err := runAbapAddonAssemblyKitRegisterPackages(&config, nil, client, &cpe, mockReader)
|
||||
err := runAbapAddonAssemblyKitRegisterPackages(&config, client, &cpe, mockReader)
|
||||
|
||||
assert.Error(t, err, "Did expect error")
|
||||
})
|
||||
@@ -90,7 +90,7 @@ func TestRegisterPackagesStep(t *testing.T) {
|
||||
}
|
||||
adoDesc, _ := json.Marshal(addonDescriptor)
|
||||
config.AddonDescriptor = string(adoDesc)
|
||||
err := runAbapAddonAssemblyKitRegisterPackages(&config, nil, client, &cpe, mockReader)
|
||||
err := runAbapAddonAssemblyKitRegisterPackages(&config, client, &cpe, mockReader)
|
||||
assert.Error(t, err, "Did expect error")
|
||||
})
|
||||
t.Run("step error - registerPackages - invalid input", func(t *testing.T) {
|
||||
@@ -107,7 +107,7 @@ func TestRegisterPackagesStep(t *testing.T) {
|
||||
}
|
||||
adoDesc, _ := json.Marshal(addonDescriptor)
|
||||
config.AddonDescriptor = string(adoDesc)
|
||||
err := runAbapAddonAssemblyKitRegisterPackages(&config, nil, client, &cpe, mockReader)
|
||||
err := runAbapAddonAssemblyKitRegisterPackages(&config, client, &cpe, mockReader)
|
||||
assert.Error(t, err, "Did expect error")
|
||||
})
|
||||
}
|
||||
|
@@ -14,14 +14,15 @@ import (
|
||||
|
||||
func abapAddonAssemblyKitReleasePackages(config abapAddonAssemblyKitReleasePackagesOptions, telemetryData *telemetry.CustomData, cpe *abapAddonAssemblyKitReleasePackagesCommonPipelineEnvironment) {
|
||||
utils := aakaas.NewAakBundleWithTime(time.Duration(config.MaxRuntimeInMinutes), time.Duration(config.PollingIntervalInSeconds))
|
||||
telemetryData.BuildTool = "AAKaaS"
|
||||
|
||||
// error situations should stop execution through log.Entry().Fatal() call which leads to an os.Exit(1) in the end
|
||||
if err := runAbapAddonAssemblyKitReleasePackages(&config, telemetryData, &utils, cpe); err != nil {
|
||||
if err := runAbapAddonAssemblyKitReleasePackages(&config, &utils, cpe); err != nil {
|
||||
telemetryData.ErrorCode = err.Error()
|
||||
log.Entry().WithError(err).Fatal("step execution failed")
|
||||
}
|
||||
}
|
||||
|
||||
func runAbapAddonAssemblyKitReleasePackages(config *abapAddonAssemblyKitReleasePackagesOptions, telemetryData *telemetry.CustomData, utils *aakaas.AakUtils,
|
||||
func runAbapAddonAssemblyKitReleasePackages(config *abapAddonAssemblyKitReleasePackagesOptions, utils *aakaas.AakUtils,
|
||||
cpe *abapAddonAssemblyKitReleasePackagesCommonPipelineEnvironment) error {
|
||||
conn := new(abapbuild.Connector)
|
||||
if err := conn.InitAAKaaS(config.AbapAddonAssemblyKitEndpoint, config.Username, config.Password, *utils, config.AbapAddonAssemblyKitOriginHash, config.AbapAddonAssemblyKitCertificateFile, config.AbapAddonAssemblyKitCertificatePass); err != nil {
|
||||
|
@@ -39,7 +39,7 @@ func TestReleasePackagesStep(t *testing.T) {
|
||||
adoDesc, _ := json.Marshal(addonDescriptor)
|
||||
config.AddonDescriptor = string(adoDesc)
|
||||
//act
|
||||
err := runAbapAddonAssemblyKitReleasePackages(&config, nil, &utils, &cpe)
|
||||
err := runAbapAddonAssemblyKitReleasePackages(&config, &utils, &cpe)
|
||||
//assert
|
||||
assert.NoError(t, err, "Did not expect error")
|
||||
var addonDescriptorFinal abaputils.AddonDescriptor
|
||||
@@ -60,7 +60,7 @@ func TestReleasePackagesStep(t *testing.T) {
|
||||
adoDesc, _ := json.Marshal(addonDescriptor)
|
||||
config.AddonDescriptor = string(adoDesc)
|
||||
//act
|
||||
err := runAbapAddonAssemblyKitReleasePackages(&config, nil, &utils, &cpe)
|
||||
err := runAbapAddonAssemblyKitReleasePackages(&config, &utils, &cpe)
|
||||
//assert
|
||||
assert.Error(t, err, "Did expect error")
|
||||
assert.Equal(t, err.Error(), "Parameter missing. Please provide the name of the package which should be released")
|
||||
@@ -81,7 +81,7 @@ func TestReleasePackagesStep(t *testing.T) {
|
||||
adoDesc, _ := json.Marshal(addonDescriptor)
|
||||
config.AddonDescriptor = string(adoDesc)
|
||||
//act
|
||||
err := runAbapAddonAssemblyKitReleasePackages(&config, nil, &utils, &cpe)
|
||||
err := runAbapAddonAssemblyKitReleasePackages(&config, &utils, &cpe)
|
||||
//assert
|
||||
assert.Error(t, err, "Did expect error")
|
||||
assert.Equal(t, err.Error(), "Release of all packages failed/timed out - Aborting as abapEnvironmentAssembleConfirm step is not needed: Timed out")
|
||||
@@ -116,7 +116,7 @@ func TestReleasePackagesStepMix(t *testing.T) {
|
||||
adoDesc, _ := json.Marshal(addonDescriptor)
|
||||
config.AddonDescriptor = string(adoDesc)
|
||||
//act
|
||||
err := runAbapAddonAssemblyKitReleasePackages(&config, nil, &utils, &cpe)
|
||||
err := runAbapAddonAssemblyKitReleasePackages(&config, &utils, &cpe)
|
||||
//assert
|
||||
assert.NoError(t, err, "Did not expect error")
|
||||
var addonDescriptorFinal abaputils.AddonDescriptor
|
||||
|
@@ -15,13 +15,15 @@ import (
|
||||
|
||||
func abapAddonAssemblyKitReserveNextPackages(config abapAddonAssemblyKitReserveNextPackagesOptions, telemetryData *telemetry.CustomData, cpe *abapAddonAssemblyKitReserveNextPackagesCommonPipelineEnvironment) {
|
||||
utils := aakaas.NewAakBundleWithTime(time.Duration(config.MaxRuntimeInMinutes), time.Duration(config.PollingIntervalInSeconds))
|
||||
// error situations should stop execution through log.Entry().Fatal() call which leads to an os.Exit(1) in the end
|
||||
if err := runAbapAddonAssemblyKitReserveNextPackages(&config, telemetryData, &utils, cpe); err != nil {
|
||||
telemetryData.BuildTool = "AAKaaS"
|
||||
|
||||
if err := runAbapAddonAssemblyKitReserveNextPackages(&config, &utils, cpe); err != nil {
|
||||
telemetryData.ErrorCode = err.Error()
|
||||
log.Entry().WithError(err).Fatal("step execution failed")
|
||||
}
|
||||
}
|
||||
|
||||
func runAbapAddonAssemblyKitReserveNextPackages(config *abapAddonAssemblyKitReserveNextPackagesOptions, telemetryData *telemetry.CustomData, utils *aakaas.AakUtils,
|
||||
func runAbapAddonAssemblyKitReserveNextPackages(config *abapAddonAssemblyKitReserveNextPackagesOptions, utils *aakaas.AakUtils,
|
||||
cpe *abapAddonAssemblyKitReserveNextPackagesCommonPipelineEnvironment) error {
|
||||
|
||||
log.Entry().Info("╔═════════════════════════════════════════╗")
|
||||
|
@@ -45,7 +45,7 @@ func TestReserveNextPackagesStep(t *testing.T) {
|
||||
})
|
||||
bodyList := []string{responseReserveNextPackageReleased, responseReserveNextPackagePlanned, responseReserveNextPackagePostReleased, "myToken", responseReserveNextPackagePostPlanned, "myToken"}
|
||||
bundle.SetBodyList(bodyList)
|
||||
err := runAbapAddonAssemblyKitReserveNextPackages(&config, nil, &utils, &cpe)
|
||||
err := runAbapAddonAssemblyKitReserveNextPackages(&config, &utils, &cpe)
|
||||
assert.NoError(t, err, "Did not expect error")
|
||||
var addonDescriptorFinal abaputils.AddonDescriptor
|
||||
err = json.Unmarshal([]byte(cpe.abap.addonDescriptor), &addonDescriptorFinal)
|
||||
@@ -71,7 +71,7 @@ func TestReserveNextPackagesStep(t *testing.T) {
|
||||
})
|
||||
bodyList := []string{responseReserveNextPackageReleased, responseReserveNextPackagePlanned, responseReserveNextPackagePostReleased, "myToken", responseReserveNextPackagePostPlanned, "myToken"}
|
||||
bundle.SetBodyList(bodyList)
|
||||
err := runAbapAddonAssemblyKitReserveNextPackages(&config, nil, &utils, &cpe)
|
||||
err := runAbapAddonAssemblyKitReserveNextPackages(&config, &utils, &cpe)
|
||||
assert.NoError(t, err, "Did not expect error")
|
||||
var addonDescriptorFinal abaputils.AddonDescriptor
|
||||
err = json.Unmarshal([]byte(cpe.abap.addonDescriptor), &addonDescriptorFinal)
|
||||
@@ -87,7 +87,7 @@ func TestReserveNextPackagesStep(t *testing.T) {
|
||||
},
|
||||
},
|
||||
})
|
||||
err := runAbapAddonAssemblyKitReserveNextPackages(&config, nil, &utils, &cpe)
|
||||
err := runAbapAddonAssemblyKitReserveNextPackages(&config, &utils, &cpe)
|
||||
assert.Error(t, err, "Did expect error")
|
||||
})
|
||||
t.Run("step error - timeout", func(t *testing.T) {
|
||||
@@ -102,7 +102,8 @@ func TestReserveNextPackagesStep(t *testing.T) {
|
||||
bodyList := []string{responseReserveNextPackageCreationTriggered, responseReserveNextPackagePostPlanned, "myToken"}
|
||||
bundle.SetBodyList(bodyList)
|
||||
bundle.SetMaxRuntime(time.Duration(1 * time.Microsecond))
|
||||
err := runAbapAddonAssemblyKitReserveNextPackages(&config, nil, &utils, &cpe)
|
||||
bundle.ClientMock.ErrorInsteadOfDump = true
|
||||
err := runAbapAddonAssemblyKitReserveNextPackages(&config, &utils, &cpe)
|
||||
assert.Error(t, err, "Did expect error")
|
||||
})
|
||||
}
|
||||
|
@@ -24,14 +24,17 @@ func abapEnvironmentAssembleConfirm(config abapEnvironmentAssembleConfirmOptions
|
||||
Exec: &c,
|
||||
}
|
||||
|
||||
telemetryData.BuildTool = "ABAP Build Framework"
|
||||
|
||||
client := piperhttp.Client{}
|
||||
err := runAbapEnvironmentAssembleConfirm(&config, telemetryData, &autils, &client, cpe)
|
||||
err := runAbapEnvironmentAssembleConfirm(&config, &autils, &client, cpe)
|
||||
if err != nil {
|
||||
telemetryData.ErrorCode = err.Error()
|
||||
log.Entry().WithError(err).Fatal("step execution failed")
|
||||
}
|
||||
}
|
||||
|
||||
func runAbapEnvironmentAssembleConfirm(config *abapEnvironmentAssembleConfirmOptions, telemetryData *telemetry.CustomData, com abaputils.Communication, client abapbuild.HTTPSendLoader, cpe *abapEnvironmentAssembleConfirmCommonPipelineEnvironment) error {
|
||||
func runAbapEnvironmentAssembleConfirm(config *abapEnvironmentAssembleConfirmOptions, com abaputils.Communication, client abapbuild.HTTPSendLoader, cpe *abapEnvironmentAssembleConfirmCommonPipelineEnvironment) error {
|
||||
conn := new(abapbuild.Connector)
|
||||
var connConfig abapbuild.ConnectorConfiguration
|
||||
connConfig.CfAPIEndpoint = config.CfAPIEndpoint
|
||||
|
@@ -1,6 +1,7 @@
|
||||
package cmd
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"path"
|
||||
"path/filepath"
|
||||
"time"
|
||||
@@ -33,47 +34,42 @@ func abapEnvironmentAssemblePackages(config abapEnvironmentAssemblePackagesOptio
|
||||
|
||||
client := piperhttp.Client{}
|
||||
utils := piperutils.Files{}
|
||||
err := runAbapEnvironmentAssemblePackages(&config, telemetryData, &autils, &utils, &client, cpe)
|
||||
if err != nil {
|
||||
|
||||
telemetryData.BuildTool = "ABAP Build Framework"
|
||||
|
||||
if err := runAbapEnvironmentAssemblePackages(&config, &autils, &utils, &client, cpe); err != nil {
|
||||
telemetryData.ErrorCode = err.Error()
|
||||
log.Entry().WithError(err).Fatal("step execution failed")
|
||||
}
|
||||
}
|
||||
|
||||
func runAbapEnvironmentAssemblePackages(config *abapEnvironmentAssemblePackagesOptions, telemetryData *telemetry.CustomData, com abaputils.Communication, utils piperutils.FileUtils, client abapbuild.HTTPSendLoader, cpe *abapEnvironmentAssemblePackagesCommonPipelineEnvironment) error {
|
||||
connBuild := new(abapbuild.Connector)
|
||||
if errConBuild := initAssemblePackagesConnection(connBuild, config, com, client); errConBuild != nil {
|
||||
return errConBuild
|
||||
}
|
||||
func runAbapEnvironmentAssemblePackages(config *abapEnvironmentAssemblePackagesOptions, com abaputils.Communication, utils piperutils.FileUtils, client abapbuild.HTTPSendLoader, cpe *abapEnvironmentAssemblePackagesCommonPipelineEnvironment) error {
|
||||
log.Entry().Info("╔═════════════════════════════════╗")
|
||||
log.Entry().Info("║ abapEnvironmentAssemblePackages ║")
|
||||
log.Entry().Info("╚═════════════════════════════════╝")
|
||||
|
||||
addonDescriptor := new(abaputils.AddonDescriptor)
|
||||
if err := addonDescriptor.InitFromJSONstring(config.AddonDescriptor); err != nil {
|
||||
return errors.Wrap(err, "Reading AddonDescriptor failed [Make sure abapAddonAssemblyKit...CheckCVs|CheckPV|ReserveNextPackages steps have been run before]")
|
||||
}
|
||||
|
||||
builds, err := executeBuilds(addonDescriptor, *connBuild, time.Duration(config.MaxRuntimeInMinutes)*time.Minute, time.Duration(config.PollIntervalsInMilliseconds)*time.Millisecond)
|
||||
if err != nil {
|
||||
return errors.Wrap(err, "Starting Builds for Repositories with reserved AAKaaS packages failed")
|
||||
builds, assembleError := runAssemblePackages(config, com, utils, client, addonDescriptor)
|
||||
if assembleError != nil && builds != nil {
|
||||
addonDescriptor.ErrorText = assembleError.Error()
|
||||
log.Entry().Info("---------------------------------")
|
||||
log.Entry().Error("During the Assembly errors occured on following levels:")
|
||||
for _, build := range builds {
|
||||
var errorText string
|
||||
if build.repo.ErrorText == "" {
|
||||
errorText = "<No Error>"
|
||||
} else {
|
||||
errorText = build.repo.ErrorText
|
||||
}
|
||||
log.Entry().Errorf("Software Component %s: %s", build.repo.Name, errorText)
|
||||
}
|
||||
log.Entry().Errorf("Product %s: %s", addonDescriptor.AddonProduct, addonDescriptor.ErrorText)
|
||||
}
|
||||
|
||||
err = checkIfFailedAndPrintLogs(builds)
|
||||
if err != nil {
|
||||
return errors.Wrap(err, "Checking for failed Builds and Printing Build Logs failed")
|
||||
}
|
||||
|
||||
_, err = downloadResultToFile(builds, "SAR_XML", false) //File is present in ABAP build system and uploaded to AAKaaS, no need to fill up jenkins with it
|
||||
if err != nil {
|
||||
return errors.Wrap(err, "Download of Build Artifact SAR_XML failed")
|
||||
}
|
||||
|
||||
var filesToPublish []piperutils.Path
|
||||
filesToPublish, err = downloadResultToFile(builds, "DELIVERY_LOGS.ZIP", true)
|
||||
if err != nil {
|
||||
return errors.Wrap(err, "Download of Build Artifact DELIVERY_LOGS.ZIP failed")
|
||||
}
|
||||
|
||||
log.Entry().Infof("Publishing %v files", len(filesToPublish))
|
||||
piperutils.PersistReportsAndLinks("abapEnvironmentAssemblePackages", "", utils, filesToPublish, nil)
|
||||
|
||||
var reposBackToCPE []abaputils.Repository
|
||||
for _, b := range builds {
|
||||
reposBackToCPE = append(reposBackToCPE, b.repo)
|
||||
@@ -81,7 +77,38 @@ func runAbapEnvironmentAssemblePackages(config *abapEnvironmentAssemblePackagesO
|
||||
addonDescriptor.SetRepositories(reposBackToCPE)
|
||||
cpe.abap.addonDescriptor = addonDescriptor.AsJSONstring()
|
||||
|
||||
return nil
|
||||
return assembleError
|
||||
}
|
||||
|
||||
func runAssemblePackages(config *abapEnvironmentAssemblePackagesOptions, com abaputils.Communication, utils piperutils.FileUtils, client abapbuild.HTTPSendLoader, addonDescriptor *abaputils.AddonDescriptor) ([]buildWithRepository, error) {
|
||||
connBuild := new(abapbuild.Connector)
|
||||
if errConBuild := initAssemblePackagesConnection(connBuild, config, com, client); errConBuild != nil {
|
||||
return nil, errConBuild
|
||||
}
|
||||
|
||||
builds, err := executeBuilds(addonDescriptor, *connBuild, time.Duration(config.MaxRuntimeInMinutes)*time.Minute, time.Duration(config.PollIntervalsInMilliseconds)*time.Millisecond)
|
||||
if err != nil {
|
||||
return builds, errors.Wrap(err, "Starting Builds for Repositories with reserved AAKaaS packages failed")
|
||||
}
|
||||
|
||||
if err := checkIfFailedAndPrintLogs(builds); err != nil {
|
||||
return builds, errors.Wrap(err, "Checking for failed Builds and Printing Build Logs failed")
|
||||
}
|
||||
|
||||
if _, err := downloadResultToFile(builds, "SAR_XML", false); err != nil {
|
||||
return builds, errors.Wrap(err, "Download of Build Artifact SAR_XML failed")
|
||||
}
|
||||
|
||||
var filesToPublish []piperutils.Path
|
||||
filesToPublish, err = downloadResultToFile(builds, "DELIVERY_LOGS.ZIP", true)
|
||||
if err != nil {
|
||||
return builds, errors.Wrap(err, "Download of Build Artifact DELIVERY_LOGS.ZIP failed")
|
||||
}
|
||||
|
||||
log.Entry().Infof("Publishing %v files", len(filesToPublish))
|
||||
piperutils.PersistReportsAndLinks("abapEnvironmentAssemblePackages", "", utils, filesToPublish, nil)
|
||||
|
||||
return builds, nil
|
||||
}
|
||||
|
||||
func executeBuilds(addonDescriptor *abaputils.AddonDescriptor, conn abapbuild.Connector, maxRuntimeInMinutes time.Duration, pollInterval time.Duration) ([]buildWithRepository, error) {
|
||||
@@ -101,6 +128,7 @@ func executeBuilds(addonDescriptor *abaputils.AddonDescriptor, conn abapbuild.Co
|
||||
err := buildRepo.start(addonDescriptor)
|
||||
if err != nil {
|
||||
buildRepo.build.RunState = abapbuild.Failed
|
||||
buildRepo.repo.ErrorText = fmt.Sprint(err)
|
||||
log.Entry().Error(err)
|
||||
log.Entry().Info("Continueing with other builds (if any)")
|
||||
} else {
|
||||
@@ -108,6 +136,7 @@ func executeBuilds(addonDescriptor *abaputils.AddonDescriptor, conn abapbuild.Co
|
||||
if err != nil {
|
||||
buildRepo.build.RunState = abapbuild.Failed
|
||||
log.Entry().Error(err)
|
||||
buildRepo.repo.ErrorText = fmt.Sprint(err)
|
||||
log.Entry().Error("Continuing with other builds (if any) but keep in Mind that even if this build finishes beyond timeout the result is not trustworthy due to possible side effects!")
|
||||
}
|
||||
}
|
||||
@@ -256,7 +285,14 @@ func checkIfFailedAndPrintLogs(builds []buildWithRepository) error {
|
||||
if err := builds[i].build.PrintLogs(); err != nil {
|
||||
return err
|
||||
}
|
||||
cause, err := builds[i].build.DetermineFailureCause()
|
||||
if err != nil {
|
||||
return err
|
||||
} else if cause != "" {
|
||||
builds[i].repo.ErrorText = cause
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
if buildFailed {
|
||||
return errors.New("At least the assembly of one package failed")
|
||||
|
@@ -95,7 +95,7 @@ func TestStep(t *testing.T) {
|
||||
PollIntervalsInMilliseconds: 1,
|
||||
}
|
||||
|
||||
err := runAbapEnvironmentAssemblePackages(config, nil, autils, &mock.FilesMock{}, &client, cpe)
|
||||
err := runAbapEnvironmentAssemblePackages(config, autils, &mock.FilesMock{}, &client, cpe)
|
||||
assert.NoError(t, err)
|
||||
assert.NotContains(t, cpe.abap.addonDescriptor, `"InBuildScope"`)
|
||||
})
|
||||
@@ -106,7 +106,7 @@ func TestStep(t *testing.T) {
|
||||
PollIntervalsInMilliseconds: 1,
|
||||
}
|
||||
|
||||
err := runAbapEnvironmentAssemblePackages(config, nil, autils, &mock.FilesMock{}, &client, cpe)
|
||||
err := runAbapEnvironmentAssemblePackages(config, autils, &mock.FilesMock{}, &client, cpe)
|
||||
assert.NoError(t, err)
|
||||
assert.Contains(t, cpe.abap.addonDescriptor, `SAPK-001AAINITAPC1.SAR`)
|
||||
assert.Contains(t, cpe.abap.addonDescriptor, `"InBuildScope":true`)
|
||||
|
@@ -94,12 +94,15 @@ func newAbapEnvironmentBuildUtils(maxRuntime time.Duration, pollingInterval time
|
||||
|
||||
func abapEnvironmentBuild(config abapEnvironmentBuildOptions, telemetryData *telemetry.CustomData, cpe *abapEnvironmentBuildCommonPipelineEnvironment) {
|
||||
utils := newAbapEnvironmentBuildUtils(time.Duration(config.MaxRuntimeInMinutes), time.Duration(config.PollingIntervalInSeconds))
|
||||
if err := runAbapEnvironmentBuild(&config, telemetryData, utils, cpe); err != nil {
|
||||
telemetryData.BuildTool = "ABAP Build Framework"
|
||||
|
||||
if err := runAbapEnvironmentBuild(&config, utils, cpe); err != nil {
|
||||
telemetryData.ErrorCode = err.Error()
|
||||
log.Entry().WithError(err).Fatal("step execution failed")
|
||||
}
|
||||
}
|
||||
|
||||
func runAbapEnvironmentBuild(config *abapEnvironmentBuildOptions, telemetryData *telemetry.CustomData, utils abapEnvironmentBuildUtils, cpe *abapEnvironmentBuildCommonPipelineEnvironment) error {
|
||||
func runAbapEnvironmentBuild(config *abapEnvironmentBuildOptions, utils abapEnvironmentBuildUtils, cpe *abapEnvironmentBuildCommonPipelineEnvironment) error {
|
||||
|
||||
log.Entry().Info("╔════════════════════════════════╗")
|
||||
log.Entry().Info("║ abapEnvironmentBuild ║")
|
||||
|
@@ -76,7 +76,7 @@ func TestRunAbapEnvironmentBuild(t *testing.T) {
|
||||
config.PublishAllDownloadedResultFiles = true
|
||||
utils := newAbapEnvironmentBuildTestsUtils()
|
||||
// test
|
||||
err := runAbapEnvironmentBuild(&config, nil, utils, &cpe)
|
||||
err := runAbapEnvironmentBuild(&config, utils, &cpe)
|
||||
// assert
|
||||
finalValues := `[{"value_id":"PHASE","value":"AUNIT"},{"value_id":"PACKAGES","value":"/BUILD/AUNIT_DUMMY_TESTS"},{"value_id":"MyId1","value":"AunitValue1"},{"value_id":"MyId2","value":"AunitValue2"},{"value_id":"BUILD_FRAMEWORK_MODE","value":"P"}]`
|
||||
assert.NoError(t, err)
|
||||
@@ -93,7 +93,7 @@ func TestRunAbapEnvironmentBuild(t *testing.T) {
|
||||
config.AbapSourceClient = "001"
|
||||
utils := newAbapEnvironmentBuildTestsUtilsWithClient()
|
||||
// test
|
||||
err := runAbapEnvironmentBuild(&config, nil, utils, &cpe)
|
||||
err := runAbapEnvironmentBuild(&config, utils, &cpe)
|
||||
// assert
|
||||
finalValues := `[{"value_id":"PHASE","value":"AUNIT"},{"value_id":"SUN","value":"SUMMER"}]`
|
||||
assert.NoError(t, err)
|
||||
@@ -111,7 +111,7 @@ func TestRunAbapEnvironmentBuild(t *testing.T) {
|
||||
config.PublishResultFilenames = []string{"SAR_XML"}
|
||||
utils := newAbapEnvironmentBuildTestsUtils()
|
||||
// test
|
||||
err := runAbapEnvironmentBuild(&config, nil, utils, &cpe)
|
||||
err := runAbapEnvironmentBuild(&config, utils, &cpe)
|
||||
// assert
|
||||
assert.NoError(t, err)
|
||||
})
|
||||
@@ -130,7 +130,7 @@ func TestRunAbapEnvironmentBuild(t *testing.T) {
|
||||
config.UseFieldsOfAddonDescriptor = `[{"use":"Name","renameTo":"MyId1"},{"use":"Status","renameTo":"MyId2"}]`
|
||||
utils := newAbapEnvironmentBuildTestsUtils()
|
||||
// test
|
||||
err := runAbapEnvironmentBuild(&config, nil, utils, &cpe)
|
||||
err := runAbapEnvironmentBuild(&config, utils, &cpe)
|
||||
// assert
|
||||
finalValues := `[{"value_id":"PACKAGES","value":"/BUILD/AUNIT_DUMMY_TESTS"}]`
|
||||
err = json.Unmarshal([]byte(finalValues), &expectedValueList)
|
||||
@@ -152,7 +152,7 @@ func TestRunAbapEnvironmentBuild(t *testing.T) {
|
||||
config.PublishResultFilenames = []string{"SAR_XML"}
|
||||
utils := newAbapEnvironmentBuildTestsUtils()
|
||||
// test
|
||||
err := runAbapEnvironmentBuild(&config, nil, utils, &cpe)
|
||||
err := runAbapEnvironmentBuild(&config, utils, &cpe)
|
||||
// assert
|
||||
assert.Error(t, err)
|
||||
})
|
||||
@@ -168,7 +168,7 @@ func TestRunAbapEnvironmentBuild(t *testing.T) {
|
||||
config.PublishAllDownloadedResultFiles = true
|
||||
utils := newAbapEnvironmentBuildTestsUtils()
|
||||
// test
|
||||
err := runAbapEnvironmentBuild(&config, nil, utils, &cpe)
|
||||
err := runAbapEnvironmentBuild(&config, utils, &cpe)
|
||||
// assert
|
||||
assert.Error(t, err)
|
||||
})
|
||||
|
@@ -26,21 +26,19 @@ const (
|
||||
warning resultState = "WARNING"
|
||||
erroneous resultState = "ERRONEOUS"
|
||||
aborted resultState = "ABORTED"
|
||||
// Initializing : Build Framework prepared
|
||||
Initializing RunState = "INITIALIZING"
|
||||
// Accepted : Build Framework triggered
|
||||
Accepted RunState = "ACCEPTED"
|
||||
// Running : Build Framework performs build
|
||||
Running RunState = "RUNNING"
|
||||
// Finished : Build Framework ended successful
|
||||
Finished RunState = "FINISHED"
|
||||
// Failed : Build Framework endded with error
|
||||
Failed RunState = "FAILED"
|
||||
loginfo msgty = "I"
|
||||
logwarning msgty = "W"
|
||||
logerror msgty = "E"
|
||||
logaborted msgty = "A"
|
||||
dummyResultName string = "Dummy"
|
||||
|
||||
Initializing RunState = "INITIALIZING" // Initializing : Build Framework prepared
|
||||
Accepted RunState = "ACCEPTED" // Accepted : Build Framework triggered
|
||||
Running RunState = "RUNNING" // Running : Build Framework performs build
|
||||
Finished RunState = "FINISHED" // Finished : Build Framework ended successful
|
||||
Failed RunState = "FAILED" // Failed : Build Framework endded with error
|
||||
|
||||
loginfo msgty = "I"
|
||||
logwarning msgty = "W"
|
||||
logerror msgty = "E"
|
||||
logaborted msgty = "A"
|
||||
|
||||
dummyResultName string = "Dummy"
|
||||
)
|
||||
|
||||
// ******** structs needed for json convertion ********
|
||||
@@ -316,6 +314,33 @@ func (b *Build) PrintLogs() error {
|
||||
return nil
|
||||
}
|
||||
|
||||
func (b *Build) DetermineFailureCause() (string, error) {
|
||||
if err := b.getTasks(); err != nil {
|
||||
return "", err
|
||||
}
|
||||
//The errors of the last executed task should contain some hints about the cause of the failure
|
||||
lastTaskIndex := len(b.Tasks) - 1
|
||||
if lastTaskIndex < 0 {
|
||||
return "", errors.New("No Tasks to evaluate")
|
||||
}
|
||||
failedTask := b.Tasks[lastTaskIndex]
|
||||
if err := failedTask.getLogs(); err != nil {
|
||||
return "", err
|
||||
}
|
||||
return failedTask.determineFailureCause(), nil
|
||||
}
|
||||
|
||||
func (t *task) determineFailureCause() string {
|
||||
var cause strings.Builder
|
||||
for _, logLine := range t.Logs {
|
||||
if logLine.Msgty == logaborted || logLine.Msgty == logerror {
|
||||
cause.WriteString(logLine.Logline + "\n")
|
||||
}
|
||||
}
|
||||
causeString := cause.String()
|
||||
return causeString
|
||||
}
|
||||
|
||||
// GetResults : Gets all Build results
|
||||
func (b *Build) GetResults() error {
|
||||
if err := b.getTasks(); err != nil {
|
||||
|
@@ -32,6 +32,7 @@ type AddonDescriptor struct {
|
||||
AddonPatchLevel string
|
||||
TargetVectorID string `json:",omitempty"`
|
||||
Repositories []Repository `json:"repositories"`
|
||||
ErrorText string `json:",omitempty"`
|
||||
}
|
||||
|
||||
// Repository contains fields for the repository/component version
|
||||
@@ -54,6 +55,7 @@ type Repository struct {
|
||||
SarXMLFilePath string `json:",omitempty"`
|
||||
Languages []string `json:"languages,omitempty"`
|
||||
InBuildScope bool `json:",omitempty"`
|
||||
ErrorText string `json:",omitempty"`
|
||||
}
|
||||
|
||||
// ReadAddonDescriptorType is the type for ReadAddonDescriptor for mocking
|
||||
|
Reference in New Issue
Block a user