From e7ff8a7f38191b03e467a9146e64186fd76e8e53 Mon Sep 17 00:00:00 2001 From: VonnyJap Date: Fri, 1 Nov 2024 18:45:23 -0700 Subject: [PATCH 1/2] parentevent is merged at the beginning --- launch.go | 30 +++++++++++++++--------------- launch_test.go | 8 ++++++-- 2 files changed, 21 insertions(+), 17 deletions(-) diff --git a/launch.go b/launch.go index 2a8c157..e00d2cd 100644 --- a/launch.go +++ b/launch.go @@ -474,6 +474,21 @@ func launch(api screwdriver.API, buildID int, rootDir, emitterPath, metaSpace, s return err, "", "" } + // Always merge parent event meta if it exists (Issue #3234) + if event.ParentEventID != 0 { // If has parent event, fetch meta from parent event + log.Printf("Fetching Parent Event %d", event.ParentEventID) + parentEvent, err := api.EventFromID(event.ParentEventID) + if err != nil { + return fmt.Errorf("Fetching Parent Event ID %d: %v", event.ParentEventID, err), "", "" + } + + if parentEvent.Meta != nil { + mergedMeta = deepMergeJSON(mergedMeta, parentEvent.Meta) + } + + metaLog = fmt.Sprintf(`Event(%v)`, parentEvent.ID) + } + // Always merge event meta if len(event.Meta) > 0 { // If has meta, marshal it log.Printf("Fetching Event Meta JSON %v", event.ID) @@ -501,21 +516,6 @@ func launch(api screwdriver.API, buildID int, rootDir, emitterPath, metaSpace, s metaLog = fmt.Sprintf(`Build(%v)`, parentBuildIDs[0]) } - // Always merge parent event meta if it exists (Issue #3234) - if event.ParentEventID != 0 { // If has parent event, fetch meta from parent event - log.Printf("Fetching Parent Event %d", event.ParentEventID) - parentEvent, err := api.EventFromID(event.ParentEventID) - if err != nil { - return fmt.Errorf("Fetching Parent Event ID %d: %v", event.ParentEventID, err), "", "" - } - - if parentEvent.Meta != nil { - mergedMeta = deepMergeJSON(mergedMeta, parentEvent.Meta) - } - - metaLog = fmt.Sprintf(`Event(%v)`, parentEvent.ID) - } - // Initialize pr comments (Issue #1858) if metadata, ok := mergedMeta["meta"]; ok { delete(metadata.(map[string]interface{}), "summary") diff --git a/launch_test.go b/launch_test.go index 9d77986..e54a16a 100644 --- a/launch_test.go +++ b/launch_test.go @@ -1849,8 +1849,10 @@ func TestMetaWhenTriggeredFromPipelinesByANDLogicWithParentBuildMeta(t *testing. eventFromIDMeta := map[string]interface{}{ "event_only": "event_value", // Remain + "event_and_parent_event": "event_value", // Remain "build_and_event_and_inner_pipeline": "event_value", // Overwrote by inner pipeline "build_and_event_and_external_pipeline": "event_value", // Overwrote by external pipeline + "build_and_event_and_parent_event": "event_value", // Overwrote by inner pipeline "parameters": map[string]string{ "event_only": "event_value", // This should be deleted "build_and_event_and_inner_pipeline": "event_value", // Overwrote by build @@ -1896,7 +1898,7 @@ func TestMetaWhenTriggeredFromPipelinesByANDLogicWithParentBuildMeta(t *testing. parentEventMeta := map[string]interface{}{ "parent_event_only": "parent_event_value", // Remain - "build_and_event_and_parent_event": "parent_event_value", // Remain + "build_and_event_and_parent_event": "parent_event_value", // Overwrote by inner pipeline "parameters": map[string]string{ "parent_event_only": "parent_event_value", // This should be deleted "build_and_event_and_parent_event": "parent_event_value", // Overwrote by build @@ -1929,6 +1931,7 @@ func TestMetaWhenTriggeredFromPipelinesByANDLogicWithParentBuildMeta(t *testing. innerParentBuildMeta := map[string]interface{}{ "inner_pipeline_only": "inner_pipeline_value", // Remain "build_and_event_and_inner_pipeline": "inner_pipeline_value", // Remain + "build_and_event_and_parent_event": "inner_pipeline_value", // Remain "parameters": map[string]string{ "inner_pipeline_only": "inner_pipeline_value", // This should be deleted "build_and_event_and_inner_pipeline": "inner_pipeline_value", // Overwrote by build @@ -2065,8 +2068,9 @@ func TestMetaWhenTriggeredFromPipelinesByANDLogicWithParentBuildMeta(t *testing. "inner_pipeline_only": "inner_pipeline_value", "build_and_event_and_inner_pipeline": "inner_pipeline_value", "build_and_event_and_external_pipeline": "external_pipeline_value", - "build_and_event_and_parent_event": "parent_event_value", + "build_and_event_and_parent_event": "inner_pipeline_value", "parent_event_only": "parent_event_value", + "event_and_parent_event": "event_value", "build":{ "buildId": "%d", "jobId": "%d", From 876976c3b18cb48f2bb455c0537c6c892a32e361 Mon Sep 17 00:00:00 2001 From: VonnyJap Date: Mon, 4 Nov 2024 15:28:45 -0800 Subject: [PATCH 2/2] fixes tests --- launch_test.go | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/launch_test.go b/launch_test.go index e54a16a..31580fb 100644 --- a/launch_test.go +++ b/launch_test.go @@ -2278,7 +2278,7 @@ func TestMetaWhenTriggeredFromInnerPipelineByORLogicWithParentBuildMeta(t *testi "build_only": "build_value", "event_only": "event_value", "inner_pipeline_only": "inner_pipeline_value", - "build_and_event_and_inner_pipeline": "event_value", + "build_and_event_and_inner_pipeline": "inner_pipeline_value", "build":{ "buildId": "%d", "jobId": "%d", @@ -2290,7 +2290,7 @@ func TestMetaWhenTriggeredFromInnerPipelineByORLogicWithParentBuildMeta(t *testi "build_only": "build_value", "event_only": "event_value", "inner_pipeline_only": "inner_pipeline_value", - "build_and_event_and_inner_pipeline": "event_value" + "build_and_event_and_inner_pipeline": "inner_pipeline_value" }, "event": { "creator": "%s" @@ -2299,7 +2299,7 @@ func TestMetaWhenTriggeredFromInnerPipelineByORLogicWithParentBuildMeta(t *testi "build_only": "build_value", "event_only": "event_value", "inner_pipeline_only": "inner_pipeline_value", - "build_and_event_and_inner_pipeline": "event_value" + "build_and_event_and_inner_pipeline": "inner_pipeline_value" }, "parameters": { "build_only": "build_value", @@ -2694,7 +2694,7 @@ func TestMetaWhenStartFromAnyJobWithParentEvent(t *testing.T) { "build_only": "build_value", "event_only": "event_value", "parent_event_only": "parent_event_value", - "build_and_event_and_parent_event": "parent_event_value", + "build_and_event_and_parent_event": "event_value", "build":{ "buildId": "%d", "jobId": "%d", @@ -2706,7 +2706,7 @@ func TestMetaWhenStartFromAnyJobWithParentEvent(t *testing.T) { "build_only": "build_value", "event_only": "event_value", "parent_event_only": "parent_event_value", - "build_and_event_and_parent_event": "parent_event_value" + "build_and_event_and_parent_event": "event_value" }, "event": { "creator": "%s" @@ -2715,7 +2715,7 @@ func TestMetaWhenStartFromAnyJobWithParentEvent(t *testing.T) { "build_only": "build_value", "event_only": "event_value", "parent_event_only": "parent_event_value", - "build_and_event_and_parent_event": "parent_event_value" + "build_and_event_and_parent_event": "event_value" }, "parameters":{ "build_only": "build_value",