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