This is an automated email from the ASF dual-hosted git repository.

klesh pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/incubator-devlake.git


The following commit(s) were added to refs/heads/main by this push:
     new f8346df18 Refactor Change Lead Time - Step 8: update DORA blueprint 
v200 code to adopt the new flow (#4958)
f8346df18 is described below

commit f8346df183875ac4206d64e21accd7ade0f343e7
Author: Klesh Wong <[email protected]>
AuthorDate: Wed Apr 19 15:01:54 2023 +0800

    Refactor Change Lead Time - Step 8: update DORA blueprint v200 code to 
adopt the new flow (#4958)
    
    * fix: the first deployment_commits should not be ignored
    
    * refactor: update dora bp v200 to adopt new flow
---
 backend/plugins/dora/impl/impl.go                  | 43 +++++++++++++++-------
 .../dora/tasks/change_lead_time_calculator.go      |  2 +-
 .../dora/tasks/prev_deployment_commit_enricher.go  |  3 +-
 .../e2e/deployment_commit_diff/commits_diffs.csv   | 10 +++--
 .../finished_commits_diffs.csv                     |  1 +
 .../tasks/deployment_commit_diff_calculator.go     |  2 -
 6 files changed, 39 insertions(+), 22 deletions(-)

diff --git a/backend/plugins/dora/impl/impl.go 
b/backend/plugins/dora/impl/impl.go
index 0ffd1400d..afc762daa 100644
--- a/backend/plugins/dora/impl/impl.go
+++ b/backend/plugins/dora/impl/impl.go
@@ -112,30 +112,47 @@ func (p Dora) MigrationScripts() []plugin.MigrationScript 
{
 }
 
 func (p Dora) MakeMetricPluginPipelinePlanV200(projectName string, options 
json.RawMessage) (plugin.PipelinePlan, errors.Error) {
-       plan := plugin.PipelinePlan{}
        op := &tasks.DoraOptions{}
        err := json.Unmarshal(options, op)
        if err != nil {
                return nil, errors.Default.WrapRaw(err)
        }
-       stageDeploymentCommitdiff := plugin.PipelineStage{
+       plan := plugin.PipelinePlan{
                {
-                       Plugin:   "refdiff",
-                       Subtasks: 
[]string{"calculateProjectDeploymentCommitsDiff"},
-                       Options: map[string]interface{}{
-                               "projectName": projectName,
+                       {
+                               Plugin: "dora",
+                               Options: map[string]interface{}{
+                                       "projectName": projectName,
+                               },
+                               Subtasks: []string{
+                                       "generateDeploymentCommits",
+                                       "enrichPrevSuccessDeploymentCommits",
+                               },
                        },
                },
-       }
-       stageDora := plugin.PipelineStage{
                {
-                       Plugin: "dora",
-                       Options: map[string]interface{}{
-                               "projectName": projectName,
+                       {
+                               Plugin: "refdiff",
+                               Options: map[string]interface{}{
+                                       "projectName": projectName,
+                               },
+                               Subtasks: []string{
+                                       "calculateDeploymentCommitsDiff",
+                               },
+                       },
+               },
+               {
+                       {
+                               Plugin: "dora",
+                               Options: map[string]interface{}{
+                                       "projectName": projectName,
+                               },
+                               Subtasks: []string{
+                                       "calculateChangeLeadTime",
+                                       "ConnectIncidentToDeployment",
+                               },
                        },
                },
        }
-       plan = append(plan, stageDeploymentCommitdiff, stageDora)
-
        return plan, nil
 }
diff --git a/backend/plugins/dora/tasks/change_lead_time_calculator.go 
b/backend/plugins/dora/tasks/change_lead_time_calculator.go
index 446c9708b..a6325e4a1 100644
--- a/backend/plugins/dora/tasks/change_lead_time_calculator.go
+++ b/backend/plugins/dora/tasks/change_lead_time_calculator.go
@@ -206,7 +206,7 @@ func getDeploymentCommit(mergeSha string, projectName 
string, db dal.Dal) (*devo
                dal.From("cicd_deployment_commits dc"),
                dal.Join("LEFT JOIN cicd_deployment_commits p ON 
(dc.prev_success_deployment_commit_id = p.id)"),
                dal.Join("LEFT JOIN project_mapping pm ON (pm.table = 
'cicd_scopes' AND pm.row_id = dc.cicd_scope_id)"),
-               dal.Join("INNER JOIN commits_diffs cd ON (cd.new_commit_sha = 
dc.commit_sha AND cd.old_commit_sha = p.commit_sha)"),
+               dal.Join("INNER JOIN commits_diffs cd ON (cd.new_commit_sha = 
dc.commit_sha AND cd.old_commit_sha = COALESCE (p.commit_sha, ''))"),
                dal.Where("dc.environment = 'PRODUCTION'"), // TODO: remove 
this when multi-environment is supported
                dal.Where("pm.project_name = ? AND cd.commit_sha = ?", 
projectName, mergeSha),
                dal.Orderby("dc.started_date, dc.id ASC"),
diff --git a/backend/plugins/dora/tasks/prev_deployment_commit_enricher.go 
b/backend/plugins/dora/tasks/prev_deployment_commit_enricher.go
index 8cb3741e4..c393a61f5 100644
--- a/backend/plugins/dora/tasks/prev_deployment_commit_enricher.go
+++ b/backend/plugins/dora/tasks/prev_deployment_commit_enricher.go
@@ -28,7 +28,7 @@ import (
 var EnrichPrevSuccessDeploymentCommitMeta = plugin.SubTaskMeta{
        Name:             "enrichPrevSuccessDeploymentCommits",
        EntryPoint:       EnrichPrevSuccessDeploymentCommit,
-       EnabledByDefault: true,
+       EnabledByDefault: false,
        Description:      "filling the prev_success_deployment_commit_id for 
cicd_deployment_commits table",
        DomainTypes:      []string{plugin.DOMAIN_TYPE_CODE},
 }
@@ -88,7 +88,6 @@ func EnrichPrevSuccessDeploymentCommit(taskCtx 
plugin.SubTaskContext) errors.Err
 
                        // now, simply connect the consecurtive deployment to 
its previous one
                        deploymentCommit.PrevSuccessDeploymentCommitId = 
prev_success_deployment_id
-                       println("paire", deploymentCommit.Id, 
prev_cicd_scope_id)
 
                        // preserve variables for the next record
                        prev_cicd_scope_id = deploymentCommit.CicdScopeId
diff --git 
a/backend/plugins/refdiff/e2e/deployment_commit_diff/commits_diffs.csv 
b/backend/plugins/refdiff/e2e/deployment_commit_diff/commits_diffs.csv
index 3855f476d..2c4ef2fc0 100644
--- a/backend/plugins/refdiff/e2e/deployment_commit_diff/commits_diffs.csv
+++ b/backend/plugins/refdiff/e2e/deployment_commit_diff/commits_diffs.csv
@@ -1,4 +1,6 @@
-commit_sha,new_commit_sha,old_commit_sha,sorting_index
-commit_sha2,commit_sha2,commit_sha1,1
-commit_sha4,commit_sha4,commit_sha2,1
-commit_sha7,commit_sha4,commit_sha2,2
+new_commit_sha,old_commit_sha,commit_sha,sorting_index
+commit_sha1,,commit_sha1,1
+commit_sha1,,commit_sha6,2
+commit_sha2,commit_sha1,commit_sha2,1
+commit_sha4,commit_sha2,commit_sha4,1
+commit_sha4,commit_sha2,commit_sha7,2
diff --git 
a/backend/plugins/refdiff/e2e/deployment_commit_diff/finished_commits_diffs.csv 
b/backend/plugins/refdiff/e2e/deployment_commit_diff/finished_commits_diffs.csv
index 4385899aa..851f4753f 100644
--- 
a/backend/plugins/refdiff/e2e/deployment_commit_diff/finished_commits_diffs.csv
+++ 
b/backend/plugins/refdiff/e2e/deployment_commit_diff/finished_commits_diffs.csv
@@ -1,3 +1,4 @@
 new_commit_sha,old_commit_sha
+commit_sha1,
 commit_sha2,commit_sha1
 commit_sha4,commit_sha2
diff --git a/backend/plugins/refdiff/tasks/deployment_commit_diff_calculator.go 
b/backend/plugins/refdiff/tasks/deployment_commit_diff_calculator.go
index 4b34b6a7b..e92dee041 100644
--- a/backend/plugins/refdiff/tasks/deployment_commit_diff_calculator.go
+++ b/backend/plugins/refdiff/tasks/deployment_commit_diff_calculator.go
@@ -58,8 +58,6 @@ func CalculateDeploymentCommitsDiff(taskCtx 
plugin.SubTaskContext) errors.Error
                dal.Where(
                        `
                        pm.project_name = ?
-                       AND dc.prev_success_deployment_commit_id IS NOT NULL
-                       AND dc.prev_success_deployment_commit_id <> ''
                        AND NOT EXISTS (
                                SELECT 1
                                FROM finished_commits_diffs fcd

Reply via email to