You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@devlake.apache.org by ab...@apache.org on 2024/02/29 11:43:58 UTC

(incubator-devlake) branch fix-dora-delete-when-data-nil2 updated: fix: empty dora data when run the tasks

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

abeizn pushed a commit to branch fix-dora-delete-when-data-nil2
in repository https://gitbox.apache.org/repos/asf/incubator-devlake.git


The following commit(s) were added to refs/heads/fix-dora-delete-when-data-nil2 by this push:
     new 96431de94 fix: empty dora data when run the tasks
96431de94 is described below

commit 96431de948c4c89f8a05c3de3711dbba733f3b94
Author: abeizn <zi...@merico.dev>
AuthorDate: Thu Feb 29 19:43:48 2024 +0800

    fix: empty dora data when run the tasks
---
 .../dora/tasks/change_lead_time_calculator.go        | 20 +++++++-------------
 .../dora/tasks/deployment_commits_generator.go       | 20 +++++++-------------
 backend/plugins/dora/tasks/deployment_generator.go   | 20 +++++++-------------
 .../plugins/dora/tasks/incident_deploy_connector.go  | 20 +++++++-------------
 4 files changed, 28 insertions(+), 52 deletions(-)

diff --git a/backend/plugins/dora/tasks/change_lead_time_calculator.go b/backend/plugins/dora/tasks/change_lead_time_calculator.go
index dc5134cbe..8b8d98308 100644
--- a/backend/plugins/dora/tasks/change_lead_time_calculator.go
+++ b/backend/plugins/dora/tasks/change_lead_time_calculator.go
@@ -48,6 +48,13 @@ func CalculateChangeLeadTime(taskCtx plugin.SubTaskContext) errors.Error {
 	logger := taskCtx.GetLogger()
 	data := taskCtx.GetData().(*DoraTaskData)
 
+	// Clear previous results from the project
+	deleteSql := fmt.Sprintf("DELETE FROM project_pr_metrics WHERE project_name = '%s'", data.Options.ProjectName)
+	err := db.Exec(deleteSql)
+	if err != nil {
+		return errors.Default.Wrap(err, "error deleting previous project_pr_metrics")
+	}
+
 	// Get pull requests by repo project_name
 	var clauses = []dal.Clause{
 		dal.Select("pr.id, pr.pull_request_key, pr.author_id, pr.merge_commit_sha, pr.created_date, pr.merged_date"),
@@ -60,19 +67,6 @@ func CalculateChangeLeadTime(taskCtx plugin.SubTaskContext) errors.Error {
 		return err
 	}
 	defer cursor.Close()
-	count, err := db.Count(clauses...)
-	if err != nil {
-		return errors.Default.Wrap(err, "error getting count of clauses")
-	}
-	if count == 0 {
-		// Clear previous results from the project
-		deleteSql := fmt.Sprintf("DELETE FROM project_pr_metrics WHERE project_name = '%s'", data.Options.ProjectName)
-		err := db.Exec(deleteSql)
-		if err != nil {
-			return errors.Default.Wrap(err, "error deleting previous project_pr_metrics")
-		}
-		return nil
-	}
 
 	converter, err := api.NewDataConverter(api.DataConverterArgs{
 		RawDataSubTaskArgs: api.RawDataSubTaskArgs{
diff --git a/backend/plugins/dora/tasks/deployment_commits_generator.go b/backend/plugins/dora/tasks/deployment_commits_generator.go
index d960f5785..325cd8b03 100644
--- a/backend/plugins/dora/tasks/deployment_commits_generator.go
+++ b/backend/plugins/dora/tasks/deployment_commits_generator.go
@@ -59,6 +59,13 @@ type pipelineCommitEx struct {
 func GenerateDeploymentCommits(taskCtx plugin.SubTaskContext) errors.Error {
 	db := taskCtx.GetDal()
 	data := taskCtx.GetData().(*DoraTaskData)
+
+	// Clear previous results from the project
+	deleteSql := fmt.Sprintf("DELETE cdc FROM cicd_deployment_commits cdc LEFT JOIN project_mapping pm ON (pm.table = 'cicd_scopes' AND pm.row_id = cdc.cicd_scope_id) WHERE pm.project_name = '%s'", data.Options.ProjectName)
+	err := db.Exec(deleteSql)
+	if err != nil {
+		return errors.Default.Wrap(err, "error deleting previous cicd_deployment_commits")
+	}
 	// select all cicd_pipeline_commits from all "Deployments" in the project
 	// Note that failed records shall be included as well
 	noneSkippedResult := []string{devops.RESULT_FAILURE, devops.RESULT_SUCCESS}
@@ -112,19 +119,6 @@ func GenerateDeploymentCommits(taskCtx plugin.SubTaskContext) errors.Error {
 		return err
 	}
 	defer cursor.Close()
-	count, err := db.Count(clauses...)
-	if err != nil {
-		return errors.Default.Wrap(err, "error getting count of clauses")
-	}
-	if count == 0 {
-		// Clear previous results from the project
-		deleteSql := fmt.Sprintf("DELETE cdc FROM cicd_deployment_commits cdc LEFT JOIN project_mapping pm ON (pm.table = 'cicd_scopes' AND pm.row_id = cdc.cicd_scope_id) WHERE pm.project_name = '%s'", data.Options.ProjectName)
-		err := db.Exec(deleteSql)
-		if err != nil {
-			return errors.Default.Wrap(err, "error deleting previous cicd_deployment_commits")
-		}
-		return nil
-	}
 
 	enricher, err := api.NewDataConverter(api.DataConverterArgs{
 		RawDataSubTaskArgs: api.RawDataSubTaskArgs{
diff --git a/backend/plugins/dora/tasks/deployment_generator.go b/backend/plugins/dora/tasks/deployment_generator.go
index f7caada5e..da9884cc4 100644
--- a/backend/plugins/dora/tasks/deployment_generator.go
+++ b/backend/plugins/dora/tasks/deployment_generator.go
@@ -48,6 +48,13 @@ type pipelineEx struct {
 func GenerateDeployment(taskCtx plugin.SubTaskContext) errors.Error {
 	db := taskCtx.GetDal()
 	data := taskCtx.GetData().(*DoraTaskData)
+	// Clear previous results from the project
+	deleteSql := fmt.Sprintf("DELETE cd FROM cicd_deployments cd LEFT JOIN project_mapping pm ON (pm.table = 'cicd_scopes' AND pm.row_id = cd.cicd_scope_id) WHERE pm.project_name = '%s'", data.Options.ProjectName)
+	err := db.Exec(deleteSql)
+	if err != nil {
+		return errors.Default.Wrap(err, "error deleting previous deployments")
+	}
+
 	// Note that failed records shall be included as well
 	noneSkippedResult := []string{devops.RESULT_FAILURE, devops.RESULT_SUCCESS}
 	var clauses = []dal.Clause{
@@ -91,19 +98,6 @@ func GenerateDeployment(taskCtx plugin.SubTaskContext) errors.Error {
 		return err
 	}
 	defer cursor.Close()
-	count, err := db.Count(clauses...)
-	if err != nil {
-		return errors.Default.Wrap(err, "error getting count of clauses")
-	}
-	if count == 0 {
-		// Clear previous results from the project
-		deleteSql := fmt.Sprintf("DELETE cd FROM cicd_deployments cd LEFT JOIN project_mapping pm ON (pm.table = 'cicd_scopes' AND pm.row_id = cd.cicd_scope_id) WHERE pm.project_name = '%s'", data.Options.ProjectName)
-		err := db.Exec(deleteSql)
-		if err != nil {
-			return errors.Default.Wrap(err, "error deleting previous deployments")
-		}
-		return nil
-	}
 
 	enricher, err := api.NewDataConverter(api.DataConverterArgs{
 		RawDataSubTaskArgs: api.RawDataSubTaskArgs{
diff --git a/backend/plugins/dora/tasks/incident_deploy_connector.go b/backend/plugins/dora/tasks/incident_deploy_connector.go
index f2903d03c..e3941af3c 100644
--- a/backend/plugins/dora/tasks/incident_deploy_connector.go
+++ b/backend/plugins/dora/tasks/incident_deploy_connector.go
@@ -48,6 +48,13 @@ type simpleCicdDeploymentCommit struct {
 func ConnectIncidentToDeployment(taskCtx plugin.SubTaskContext) errors.Error {
 	db := taskCtx.GetDal()
 	data := taskCtx.GetData().(*DoraTaskData)
+	// Clear previous results from the project
+	deleteSql := fmt.Sprintf("DELETE FROM project_issue_metrics WHERE project_name = '%s'", data.Options.ProjectName)
+	err := db.Exec(deleteSql)
+	if err != nil {
+		return errors.Default.Wrap(err, "error deleting previous project_issue_metrics")
+	}
+
 	// select all issues belongs to the board
 	clauses := []dal.Clause{
 		dal.From(`issues i`),
@@ -63,19 +70,6 @@ func ConnectIncidentToDeployment(taskCtx plugin.SubTaskContext) errors.Error {
 		return err
 	}
 	defer cursor.Close()
-	count, err := db.Count(clauses...)
-	if err != nil {
-		return errors.Default.Wrap(err, "error getting count of clauses")
-	}
-	if count == 0 {
-		// Clear previous results from the project
-		deleteSql := fmt.Sprintf("DELETE FROM project_issue_metrics WHERE project_name = '%s'", data.Options.ProjectName)
-		err := db.Exec(deleteSql)
-		if err != nil {
-			return errors.Default.Wrap(err, "error deleting previous project_issue_metrics")
-		}
-		return nil
-	}
 
 	enricher, err := api.NewDataConverter(api.DataConverterArgs{
 		RawDataSubTaskArgs: api.RawDataSubTaskArgs{