You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@devlake.apache.org by ly...@apache.org on 2024/02/28 06:48:26 UTC
(incubator-devlake) branch main updated: fix: cicd deployment dora delete when data nil (#7033)
This is an automated email from the ASF dual-hosted git repository.
lynwee 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 0929b5fbf fix: cicd deployment dora delete when data nil (#7033)
0929b5fbf is described below
commit 0929b5fbf33d8602843c52feebcf1a33ae7669c8
Author: abeizn <zi...@merico.dev>
AuthorDate: Wed Feb 28 14:48:22 2024 +0800
fix: cicd deployment dora delete when data nil (#7033)
* fix: cicd deployment dora delete when data nil
* fix: lint
* fix: dora delete data where the data after filtering conditions is empty
* fix: comments
---
.../plugins/dora/tasks/change_lead_time_calculator.go | 19 +++++++++++++++++--
.../dora/tasks/deployment_commits_generator.go | 13 +++++++++++++
backend/plugins/dora/tasks/deployment_generator.go | 14 ++++++++++++++
.../plugins/dora/tasks/incident_deploy_connector.go | 14 ++++++++++++++
backend/plugins/github_graphql/tasks/pr_extractor.go | 2 --
5 files changed, 58 insertions(+), 4 deletions(-)
diff --git a/backend/plugins/dora/tasks/change_lead_time_calculator.go b/backend/plugins/dora/tasks/change_lead_time_calculator.go
index f36303b8c..dc5134cbe 100644
--- a/backend/plugins/dora/tasks/change_lead_time_calculator.go
+++ b/backend/plugins/dora/tasks/change_lead_time_calculator.go
@@ -18,6 +18,7 @@ limitations under the License.
package tasks
import (
+ "fmt"
"math"
"reflect"
"time"
@@ -48,16 +49,30 @@ func CalculateChangeLeadTime(taskCtx plugin.SubTaskContext) errors.Error {
data := taskCtx.GetData().(*DoraTaskData)
// Get pull requests by repo project_name
- cursor, err := db.Cursor(
+ 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"),
dal.From("pull_requests pr"),
dal.Join(`LEFT JOIN project_mapping pm ON (pm.row_id = pr.base_repo_id)`),
dal.Where("pr.merged_date IS NOT NULL AND pm.project_name = ? AND pm.table = 'repos'", data.Options.ProjectName),
- )
+ }
+ cursor, err := db.Cursor(clauses...)
if err != nil {
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 85da0e5fe..d960f5785 100644
--- a/backend/plugins/dora/tasks/deployment_commits_generator.go
+++ b/backend/plugins/dora/tasks/deployment_commits_generator.go
@@ -112,6 +112,19 @@ 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 3ae9da7e6..f7caada5e 100644
--- a/backend/plugins/dora/tasks/deployment_generator.go
+++ b/backend/plugins/dora/tasks/deployment_generator.go
@@ -18,6 +18,7 @@ limitations under the License.
package tasks
import (
+ "fmt"
"reflect"
"time"
@@ -90,6 +91,19 @@ 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 cb013503a..f2903d03c 100644
--- a/backend/plugins/dora/tasks/incident_deploy_connector.go
+++ b/backend/plugins/dora/tasks/incident_deploy_connector.go
@@ -18,6 +18,7 @@ limitations under the License.
package tasks
import (
+ "fmt"
"reflect"
"time"
@@ -62,6 +63,19 @@ 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{
diff --git a/backend/plugins/github_graphql/tasks/pr_extractor.go b/backend/plugins/github_graphql/tasks/pr_extractor.go
index 9abcc4a06..fd90d1f99 100644
--- a/backend/plugins/github_graphql/tasks/pr_extractor.go
+++ b/backend/plugins/github_graphql/tasks/pr_extractor.go
@@ -19,7 +19,6 @@ package tasks
import (
"encoding/json"
- "fmt"
"regexp"
"github.com/apache/incubator-devlake/core/errors"
@@ -53,7 +52,6 @@ func ExtractPrs(taskCtx plugin.SubTaskContext) errors.Error {
}
}
if config != nil && len(config.PrComponent) > 0 {
- fmt.Println("config.PrComponent1", config.PrComponent)
labelComponentRegex, err = errors.Convert01(regexp.Compile(config.PrComponent))
if err != nil {
return errors.Default.Wrap(err, "regexp Compile prComponent failed")