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 2023/08/02 07:36:49 UTC
[incubator-devlake] branch main updated: feat: collect bamboo deployment (#5784)
This is an automated email from the ASF dual-hosted git repository.
abeizn 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 aa89a44a4 feat: collect bamboo deployment (#5784)
aa89a44a4 is described below
commit aa89a44a4a3b056a970cb9e2974d87e36e60f5fa
Author: Liang Zhang <li...@merico.dev>
AuthorDate: Wed Aug 2 15:36:43 2023 +0800
feat: collect bamboo deployment (#5784)
* feat: collect bamboo deployment
* fix: e2e test
---
backend/plugins/bamboo/e2e/deploy_build_test.go | 1 +
.../snapshot_tables/_tool_bamboo_deploy_build.csv | 18 +++++-----
.../e2e/snapshot_tables/cicd_tasks_deploy.csv | 18 +++++-----
backend/plugins/bamboo/impl/impl.go | 3 ++
.../20230725_add_scopeConfigId_to_plan.go | 2 +-
...to_plan.go => 20230801_add_env_name_pattern.go} | 24 +++++++-------
.../bamboo/models/migrationscripts/register.go | 1 +
backend/plugins/bamboo/models/scope_config.go | 3 ++
.../plugins/bamboo/tasks/deploy_build_collector.go | 3 +-
.../plugins/bamboo/tasks/deploy_build_convertor.go | 38 ++++++++++++++++------
.../plugins/bamboo/tasks/deploy_build_extractor.go | 3 +-
.../plugins/bamboo/tasks/plan_build_convertor.go | 7 ----
.../plugins/bamboo/tasks/plan_commit_convertor.go | 7 ----
13 files changed, 70 insertions(+), 58 deletions(-)
diff --git a/backend/plugins/bamboo/e2e/deploy_build_test.go b/backend/plugins/bamboo/e2e/deploy_build_test.go
index b3c913b95..3ef21ea2d 100644
--- a/backend/plugins/bamboo/e2e/deploy_build_test.go
+++ b/backend/plugins/bamboo/e2e/deploy_build_test.go
@@ -80,6 +80,7 @@ func TestBambooDeployBuildDataFlow(t *testing.T) {
// verify conversion
dataflowTester.FlushTabler(&devops.CICDTask{})
+ dataflowTester.FlushTabler(&devops.CICDPipeline{})
dataflowTester.Subtask(tasks.ConvertDeployBuildsMeta, taskData)
dataflowTester.VerifyTableWithOptions(&devops.CICDTask{}, e2ehelper.TableOptions{
CSVRelPath: "./snapshot_tables/cicd_tasks_deploy.csv",
diff --git a/backend/plugins/bamboo/e2e/snapshot_tables/_tool_bamboo_deploy_build.csv b/backend/plugins/bamboo/e2e/snapshot_tables/_tool_bamboo_deploy_build.csv
index 80cfa6463..84e390def 100644
--- a/backend/plugins/bamboo/e2e/snapshot_tables/_tool_bamboo_deploy_build.csv
+++ b/backend/plugins/bamboo/e2e/snapshot_tables/_tool_bamboo_deploy_build.csv
@@ -1,10 +1,10 @@
connection_id,deploy_build_id,deployment_version_name,deployment_state,life_cycle_state,started_date,queued_date,executed_date,finished_date,reason_summary,plan_key,project_key,can_view,can_edit,can_delete,allowed_to_execute,can_execute,allowed_to_create_version,allowed_to_set_version_status,environment,_raw_data_params,_raw_data_table,_raw_data_id,_raw_data_remark
-1,1769473,release-2,FAILED,FINISHED,2023-03-10T12:15:45.000+00:00,2023-03-10T12:15:45.000+00:00,2023-03-10T12:15:46.000+00:00,2023-03-10T12:15:46.000+00:00,"Manual run by <a href=""http://54.172.92.89:8085/browse/user/bamboo"">devlake</a>",TEST1,"",1,1,1,1,1,0,0,PRODUCTION,"{""connectionId"":1,""PlanKey"":""TEST1""}",_raw_bamboo_api_deploy_build,9,
-1,1769474,release-2,FAILED,FINISHED,2023-03-10T12:27:28.000+00:00,2023-03-10T12:27:28.000+00:00,2023-03-10T12:27:28.000+00:00,2023-03-10T12:27:28.000+00:00,"Manual run by <a href=""http://54.172.92.89:8085/browse/user/bamboo"">devlake</a>",TEST1,"",1,1,1,1,1,0,0,PRODUCTION,"{""connectionId"":1,""PlanKey"":""TEST1""}",_raw_bamboo_api_deploy_build,8,
-1,1769475,release-2,FAILED,FINISHED,2023-03-10T12:27:56.000+00:00,2023-03-10T12:27:56.000+00:00,2023-03-10T12:27:56.000+00:00,2023-03-10T12:27:56.000+00:00,"Manual run by <a href=""http://54.172.92.89:8085/browse/user/bamboo"">devlake</a>",TEST1,"",1,1,1,1,1,0,0,PRODUCTION,"{""connectionId"":1,""PlanKey"":""TEST1""}",_raw_bamboo_api_deploy_build,7,
-1,1769476,release-2,FAILED,FINISHED,2023-03-10T12:28:12.000+00:00,2023-03-10T12:28:12.000+00:00,2023-03-10T12:28:12.000+00:00,2023-03-10T12:28:12.000+00:00,"Manual run by <a href=""http://54.172.92.89:8085/browse/user/bamboo"">devlake</a>",TEST1,"",1,1,1,1,1,0,0,PRODUCTION,"{""connectionId"":1,""PlanKey"":""TEST1""}",_raw_bamboo_api_deploy_build,6,
-1,1769477,release-1,FAILED,FINISHED,2023-03-10T12:29:08.000+00:00,2023-03-10T12:29:09.000+00:00,2023-03-10T12:29:09.000+00:00,2023-03-10T12:29:09.000+00:00,"Manual run by <a href=""http://54.172.92.89:8085/browse/user/bamboo"">devlake</a>",TEST1,"",1,1,1,1,1,0,0,PRODUCTION,"{""connectionId"":1,""PlanKey"":""TEST1""}",_raw_bamboo_api_deploy_build,4,
-1,1769478,release-1,FAILED,FINISHED,2023-03-10T12:29:28.000+00:00,2023-03-10T12:29:28.000+00:00,2023-03-10T12:29:28.000+00:00,2023-03-10T12:29:28.000+00:00,"Manual run by <a href=""http://54.172.92.89:8085/browse/user/bamboo"">devlake</a>",TEST1,"",1,1,1,1,1,0,0,PRODUCTION,"{""connectionId"":1,""PlanKey"":""TEST1""}",_raw_bamboo_api_deploy_build,3,
-1,1769479,release-3,FAILED,FINISHED,2023-03-10T12:30:37.000+00:00,2023-03-10T12:30:37.000+00:00,2023-03-10T12:30:37.000+00:00,2023-03-10T12:30:37.000+00:00,"Manual run by <a href=""http://54.172.92.89:8085/browse/user/bamboo"">devlake</a>",TEST1,"",1,1,1,1,1,0,0,PRODUCTION,"{""connectionId"":1,""PlanKey"":""TEST1""}",_raw_bamboo_api_deploy_build,2,
-1,1769480,release-3,FAILED,FINISHED,2023-03-10T12:30:49.000+00:00,2023-03-10T12:30:49.000+00:00,2023-03-10T12:30:49.000+00:00,2023-03-10T12:30:49.000+00:00,"Manual run by <a href=""http://54.172.92.89:8085/browse/user/bamboo"">devlake</a>",TEST1,"",1,1,1,1,1,0,0,PRODUCTION,"{""connectionId"":1,""PlanKey"":""TEST1""}",_raw_bamboo_api_deploy_build,1,
-1,1769481,release-2,FAILED,FINISHED,2023-03-13T09:43:26.000+00:00,2023-03-13T09:43:26.000+00:00,2023-03-13T09:43:26.000+00:00,2023-03-13T09:43:26.000+00:00,"Manual run by <a href=""http://54.172.92.89:8085/browse/user/bamboo"">devlake</a>",TEST1,"",1,1,1,1,1,0,0,PRODUCTION,"{""connectionId"":1,""PlanKey"":""TEST1""}",_raw_bamboo_api_deploy_build,5,
+1,1769473,release-2,FAILED,FINISHED,2023-03-10T12:15:45.000+00:00,2023-03-10T12:15:45.000+00:00,2023-03-10T12:15:46.000+00:00,2023-03-10T12:15:46.000+00:00,"Manual run by <a href=""http://54.172.92.89:8085/browse/user/bamboo"">devlake</a>",TEST1,,1,1,1,1,1,0,0,,"{""connectionId"":1,""PlanKey"":""TEST1""}",_raw_bamboo_api_deploy_build,9,
+1,1769474,release-2,FAILED,FINISHED,2023-03-10T12:27:28.000+00:00,2023-03-10T12:27:28.000+00:00,2023-03-10T12:27:28.000+00:00,2023-03-10T12:27:28.000+00:00,"Manual run by <a href=""http://54.172.92.89:8085/browse/user/bamboo"">devlake</a>",TEST1,,1,1,1,1,1,0,0,,"{""connectionId"":1,""PlanKey"":""TEST1""}",_raw_bamboo_api_deploy_build,8,
+1,1769475,release-2,FAILED,FINISHED,2023-03-10T12:27:56.000+00:00,2023-03-10T12:27:56.000+00:00,2023-03-10T12:27:56.000+00:00,2023-03-10T12:27:56.000+00:00,"Manual run by <a href=""http://54.172.92.89:8085/browse/user/bamboo"">devlake</a>",TEST1,,1,1,1,1,1,0,0,,"{""connectionId"":1,""PlanKey"":""TEST1""}",_raw_bamboo_api_deploy_build,7,
+1,1769476,release-2,FAILED,FINISHED,2023-03-10T12:28:12.000+00:00,2023-03-10T12:28:12.000+00:00,2023-03-10T12:28:12.000+00:00,2023-03-10T12:28:12.000+00:00,"Manual run by <a href=""http://54.172.92.89:8085/browse/user/bamboo"">devlake</a>",TEST1,,1,1,1,1,1,0,0,,"{""connectionId"":1,""PlanKey"":""TEST1""}",_raw_bamboo_api_deploy_build,6,
+1,1769477,release-1,FAILED,FINISHED,2023-03-10T12:29:08.000+00:00,2023-03-10T12:29:09.000+00:00,2023-03-10T12:29:09.000+00:00,2023-03-10T12:29:09.000+00:00,"Manual run by <a href=""http://54.172.92.89:8085/browse/user/bamboo"">devlake</a>",TEST1,,1,1,1,1,1,0,0,,"{""connectionId"":1,""PlanKey"":""TEST1""}",_raw_bamboo_api_deploy_build,4,
+1,1769478,release-1,FAILED,FINISHED,2023-03-10T12:29:28.000+00:00,2023-03-10T12:29:28.000+00:00,2023-03-10T12:29:28.000+00:00,2023-03-10T12:29:28.000+00:00,"Manual run by <a href=""http://54.172.92.89:8085/browse/user/bamboo"">devlake</a>",TEST1,,1,1,1,1,1,0,0,,"{""connectionId"":1,""PlanKey"":""TEST1""}",_raw_bamboo_api_deploy_build,3,
+1,1769479,release-3,FAILED,FINISHED,2023-03-10T12:30:37.000+00:00,2023-03-10T12:30:37.000+00:00,2023-03-10T12:30:37.000+00:00,2023-03-10T12:30:37.000+00:00,"Manual run by <a href=""http://54.172.92.89:8085/browse/user/bamboo"">devlake</a>",TEST1,,1,1,1,1,1,0,0,,"{""connectionId"":1,""PlanKey"":""TEST1""}",_raw_bamboo_api_deploy_build,2,
+1,1769480,release-3,FAILED,FINISHED,2023-03-10T12:30:49.000+00:00,2023-03-10T12:30:49.000+00:00,2023-03-10T12:30:49.000+00:00,2023-03-10T12:30:49.000+00:00,"Manual run by <a href=""http://54.172.92.89:8085/browse/user/bamboo"">devlake</a>",TEST1,,1,1,1,1,1,0,0,,"{""connectionId"":1,""PlanKey"":""TEST1""}",_raw_bamboo_api_deploy_build,1,
+1,1769481,release-2,FAILED,FINISHED,2023-03-13T09:43:26.000+00:00,2023-03-13T09:43:26.000+00:00,2023-03-13T09:43:26.000+00:00,2023-03-13T09:43:26.000+00:00,"Manual run by <a href=""http://54.172.92.89:8085/browse/user/bamboo"">devlake</a>",TEST1,,1,1,1,1,1,0,0,,"{""connectionId"":1,""PlanKey"":""TEST1""}",_raw_bamboo_api_deploy_build,5,
diff --git a/backend/plugins/bamboo/e2e/snapshot_tables/cicd_tasks_deploy.csv b/backend/plugins/bamboo/e2e/snapshot_tables/cicd_tasks_deploy.csv
index 69500534a..9de77368b 100644
--- a/backend/plugins/bamboo/e2e/snapshot_tables/cicd_tasks_deploy.csv
+++ b/backend/plugins/bamboo/e2e/snapshot_tables/cicd_tasks_deploy.csv
@@ -1,10 +1,10 @@
id,name,pipeline_id,result,status,type,environment,duration_sec,started_date,finished_date,cicd_scope_id
-bamboo:BambooDeployBuild:1:1769473,release-2,bamboo:BambooPlanBuild:1:TEST1,,IN_PROGRESS,DEPLOYMENT,PRODUCTION,0,2023-03-10T12:15:45.000+00:00,2023-03-10T12:15:46.000+00:00,bamboo:BambooPlan:1:TEST1
-bamboo:BambooDeployBuild:1:1769474,release-2,bamboo:BambooPlanBuild:1:TEST1,,IN_PROGRESS,DEPLOYMENT,PRODUCTION,0,2023-03-10T12:27:28.000+00:00,2023-03-10T12:27:28.000+00:00,bamboo:BambooPlan:1:TEST1
-bamboo:BambooDeployBuild:1:1769475,release-2,bamboo:BambooPlanBuild:1:TEST1,,IN_PROGRESS,DEPLOYMENT,PRODUCTION,0,2023-03-10T12:27:56.000+00:00,2023-03-10T12:27:56.000+00:00,bamboo:BambooPlan:1:TEST1
-bamboo:BambooDeployBuild:1:1769476,release-2,bamboo:BambooPlanBuild:1:TEST1,,IN_PROGRESS,DEPLOYMENT,PRODUCTION,0,2023-03-10T12:28:12.000+00:00,2023-03-10T12:28:12.000+00:00,bamboo:BambooPlan:1:TEST1
-bamboo:BambooDeployBuild:1:1769477,release-1,bamboo:BambooPlanBuild:1:TEST1,,IN_PROGRESS,DEPLOYMENT,PRODUCTION,0,2023-03-10T12:29:08.000+00:00,2023-03-10T12:29:09.000+00:00,bamboo:BambooPlan:1:TEST1
-bamboo:BambooDeployBuild:1:1769478,release-1,bamboo:BambooPlanBuild:1:TEST1,,IN_PROGRESS,DEPLOYMENT,PRODUCTION,0,2023-03-10T12:29:28.000+00:00,2023-03-10T12:29:28.000+00:00,bamboo:BambooPlan:1:TEST1
-bamboo:BambooDeployBuild:1:1769479,release-3,bamboo:BambooPlanBuild:1:TEST1,,IN_PROGRESS,DEPLOYMENT,PRODUCTION,0,2023-03-10T12:30:37.000+00:00,2023-03-10T12:30:37.000+00:00,bamboo:BambooPlan:1:TEST1
-bamboo:BambooDeployBuild:1:1769480,release-3,bamboo:BambooPlanBuild:1:TEST1,,IN_PROGRESS,DEPLOYMENT,PRODUCTION,0,2023-03-10T12:30:49.000+00:00,2023-03-10T12:30:49.000+00:00,bamboo:BambooPlan:1:TEST1
-bamboo:BambooDeployBuild:1:1769481,release-2,bamboo:BambooPlanBuild:1:TEST1,,IN_PROGRESS,DEPLOYMENT,PRODUCTION,0,2023-03-13T09:43:26.000+00:00,2023-03-13T09:43:26.000+00:00,bamboo:BambooPlan:1:TEST1
+bamboo:BambooDeployBuild:1:1769473,release-2,bamboo:BambooDeployBuild:1:1769473,,IN_PROGRESS,DEPLOYMENT,,1,2023-03-10T12:15:45.000+00:00,2023-03-10T12:15:46.000+00:00,bamboo:BambooPlan:1:TEST1
+bamboo:BambooDeployBuild:1:1769474,release-2,bamboo:BambooDeployBuild:1:1769474,,IN_PROGRESS,DEPLOYMENT,,0,2023-03-10T12:27:28.000+00:00,2023-03-10T12:27:28.000+00:00,bamboo:BambooPlan:1:TEST1
+bamboo:BambooDeployBuild:1:1769475,release-2,bamboo:BambooDeployBuild:1:1769475,,IN_PROGRESS,DEPLOYMENT,,0,2023-03-10T12:27:56.000+00:00,2023-03-10T12:27:56.000+00:00,bamboo:BambooPlan:1:TEST1
+bamboo:BambooDeployBuild:1:1769476,release-2,bamboo:BambooDeployBuild:1:1769476,,IN_PROGRESS,DEPLOYMENT,,0,2023-03-10T12:28:12.000+00:00,2023-03-10T12:28:12.000+00:00,bamboo:BambooPlan:1:TEST1
+bamboo:BambooDeployBuild:1:1769477,release-1,bamboo:BambooDeployBuild:1:1769477,,IN_PROGRESS,DEPLOYMENT,,1,2023-03-10T12:29:08.000+00:00,2023-03-10T12:29:09.000+00:00,bamboo:BambooPlan:1:TEST1
+bamboo:BambooDeployBuild:1:1769478,release-1,bamboo:BambooDeployBuild:1:1769478,,IN_PROGRESS,DEPLOYMENT,,0,2023-03-10T12:29:28.000+00:00,2023-03-10T12:29:28.000+00:00,bamboo:BambooPlan:1:TEST1
+bamboo:BambooDeployBuild:1:1769479,release-3,bamboo:BambooDeployBuild:1:1769479,,IN_PROGRESS,DEPLOYMENT,,0,2023-03-10T12:30:37.000+00:00,2023-03-10T12:30:37.000+00:00,bamboo:BambooPlan:1:TEST1
+bamboo:BambooDeployBuild:1:1769480,release-3,bamboo:BambooDeployBuild:1:1769480,,IN_PROGRESS,DEPLOYMENT,,0,2023-03-10T12:30:49.000+00:00,2023-03-10T12:30:49.000+00:00,bamboo:BambooPlan:1:TEST1
+bamboo:BambooDeployBuild:1:1769481,release-2,bamboo:BambooDeployBuild:1:1769481,,IN_PROGRESS,DEPLOYMENT,,0,2023-03-13T09:43:26.000+00:00,2023-03-13T09:43:26.000+00:00,bamboo:BambooPlan:1:TEST1
diff --git a/backend/plugins/bamboo/impl/impl.go b/backend/plugins/bamboo/impl/impl.go
index 120c36294..e60335ac2 100644
--- a/backend/plugins/bamboo/impl/impl.go
+++ b/backend/plugins/bamboo/impl/impl.go
@@ -178,6 +178,9 @@ func (p Bamboo) PrepareTaskData(taskCtx plugin.TaskContext, options map[string]i
if err := regexEnricher.TryAdd(devops.PRODUCTION, op.ProductionPattern); err != nil {
return nil, errors.BadInput.Wrap(err, "invalid value for `productionPattern`")
}
+ if err := regexEnricher.TryAdd(models.ENV_NAME_PATTERN, op.EnvNamePattern); err != nil {
+ return nil, errors.BadInput.Wrap(err, "invalid value for `envNamePattern`")
+ }
return &tasks.BambooTaskData{
Options: op,
ApiClient: apiClient,
diff --git a/backend/plugins/bamboo/models/migrationscripts/20230725_add_scopeConfigId_to_plan.go b/backend/plugins/bamboo/models/migrationscripts/20230725_add_scopeConfigId_to_plan.go
index 85aad16c5..dfe34a92a 100644
--- a/backend/plugins/bamboo/models/migrationscripts/20230725_add_scopeConfigId_to_plan.go
+++ b/backend/plugins/bamboo/models/migrationscripts/20230725_add_scopeConfigId_to_plan.go
@@ -23,7 +23,7 @@ import (
"github.com/apache/incubator-devlake/core/plugin"
)
-var _ plugin.MigrationScript = (*addRawParamTableForScope)(nil)
+var _ plugin.MigrationScript = (*addScopeConfigId)(nil)
type plan20230725 struct {
ScopeConfigId uint64 `json:"scopeConfigId"`
diff --git a/backend/plugins/bamboo/models/migrationscripts/20230725_add_scopeConfigId_to_plan.go b/backend/plugins/bamboo/models/migrationscripts/20230801_add_env_name_pattern.go
similarity index 60%
copy from backend/plugins/bamboo/models/migrationscripts/20230725_add_scopeConfigId_to_plan.go
copy to backend/plugins/bamboo/models/migrationscripts/20230801_add_env_name_pattern.go
index 85aad16c5..c7fd4b531 100644
--- a/backend/plugins/bamboo/models/migrationscripts/20230725_add_scopeConfigId_to_plan.go
+++ b/backend/plugins/bamboo/models/migrationscripts/20230801_add_env_name_pattern.go
@@ -23,26 +23,26 @@ import (
"github.com/apache/incubator-devlake/core/plugin"
)
-var _ plugin.MigrationScript = (*addRawParamTableForScope)(nil)
+var _ plugin.MigrationScript = (*addEnvNamePattern)(nil)
-type plan20230725 struct {
- ScopeConfigId uint64 `json:"scopeConfigId"`
+type scopeConfig20230801 struct {
+ EnvNamePattern string `mapstructure:"envNamePattern,omitempty" json:"envNamePattern" gorm:"type:varchar(255)"`
}
-func (plan20230725) TableName() string {
- return "_tool_bamboo_plans"
+func (scopeConfig20230801) TableName() string {
+ return "_tool_bamboo_scope_configs"
}
-type addScopeConfigId struct{}
+type addEnvNamePattern struct{}
-func (script *addScopeConfigId) Up(basicRes context.BasicRes) errors.Error {
- return basicRes.GetDal().AutoMigrate(&plan20230725{})
+func (script *addEnvNamePattern) Up(basicRes context.BasicRes) errors.Error {
+ return basicRes.GetDal().AutoMigrate(&scopeConfig20230801{})
}
-func (*addScopeConfigId) Version() uint64 {
- return 20230725093602
+func (*addEnvNamePattern) Version() uint64 {
+ return 20230801213814
}
-func (script *addScopeConfigId) Name() string {
- return "add scope_config_id to _tool_bamboo_plans"
+func (script *addEnvNamePattern) Name() string {
+ return "add env_name_pattern to _tool_bamboo_scope_configs"
}
diff --git a/backend/plugins/bamboo/models/migrationscripts/register.go b/backend/plugins/bamboo/models/migrationscripts/register.go
index fc50db127..a55c62c40 100644
--- a/backend/plugins/bamboo/models/migrationscripts/register.go
+++ b/backend/plugins/bamboo/models/migrationscripts/register.go
@@ -30,5 +30,6 @@ func All() []plugin.MigrationScript {
new(renameTr2ScopeConfig),
new(addRawParamTableForScope),
new(addScopeConfigId),
+ new(addEnvNamePattern),
}
}
diff --git a/backend/plugins/bamboo/models/scope_config.go b/backend/plugins/bamboo/models/scope_config.go
index 66d424303..6faf12693 100644
--- a/backend/plugins/bamboo/models/scope_config.go
+++ b/backend/plugins/bamboo/models/scope_config.go
@@ -22,6 +22,8 @@ import (
"gorm.io/datatypes"
)
+const ENV_NAME_PATTERN = "ENV_NAME_PATTERN"
+
type BambooScopeConfig struct {
common.ScopeConfig `mapstructure:",squash" json:",inline" gorm:"embedded"`
ConnectionId uint64 `mapstructure:"connectionId" json:"connectionId"`
@@ -30,6 +32,7 @@ type BambooScopeConfig struct {
RepoMap datatypes.JSONMap
DeploymentPattern string `mapstructure:"deploymentPattern,omitempty" json:"deploymentPattern" gorm:"type:varchar(255)"`
ProductionPattern string `mapstructure:"productionPattern,omitempty" json:"productionPattern" gorm:"type:varchar(255)"`
+ EnvNamePattern string `mapstructure:"envNamePattern,omitempty" json:"envNamePattern" gorm:"type:varchar(255)"`
}
func (BambooScopeConfig) TableName() string {
diff --git a/backend/plugins/bamboo/tasks/deploy_build_collector.go b/backend/plugins/bamboo/tasks/deploy_build_collector.go
index 6d3fbf2c6..976adf6b5 100644
--- a/backend/plugins/bamboo/tasks/deploy_build_collector.go
+++ b/backend/plugins/bamboo/tasks/deploy_build_collector.go
@@ -37,13 +37,14 @@ var _ plugin.SubTaskEntryPoint = CollectDeployBuild
type InputForEnv struct {
EnvId uint64 `json:"env_id"`
+ Name string `json:"name"`
}
func CollectDeployBuild(taskCtx plugin.SubTaskContext) errors.Error {
rawDataSubTaskArgs, data := CreateRawDataSubTaskArgs(taskCtx, RAW_DEPLOY_BUILD_TABLE)
db := taskCtx.GetDal()
clauses := []dal.Clause{
- dal.Select("env_id"),
+ dal.Select("env_id, name"),
dal.From(models.BambooDeployEnvironment{}.TableName()),
dal.Where("plan_key = ? and connection_id=?", data.Options.PlanKey, data.Options.ConnectionId),
}
diff --git a/backend/plugins/bamboo/tasks/deploy_build_convertor.go b/backend/plugins/bamboo/tasks/deploy_build_convertor.go
index 930d67cc3..5c3bcfa84 100644
--- a/backend/plugins/bamboo/tasks/deploy_build_convertor.go
+++ b/backend/plugins/bamboo/tasks/deploy_build_convertor.go
@@ -41,13 +41,6 @@ var ConvertDeployBuildsMeta = plugin.SubTaskMeta{
func ConvertDeployBuilds(taskCtx plugin.SubTaskContext) errors.Error {
db := taskCtx.GetDal()
rawDataSubTaskArgs, data := CreateRawDataSubTaskArgs(taskCtx, RAW_JOB_BUILD_TABLE)
- deploymentPattern := data.Options.DeploymentPattern
- productionPattern := data.Options.ProductionPattern
- regexEnricher := api.NewRegexEnricher()
- err := regexEnricher.AddRegexp(deploymentPattern, productionPattern)
- if err != nil {
- return err
- }
cursor, err := db.Cursor(
dal.From(&models.BambooDeployBuild{}),
dal.Where("connection_id = ? and plan_key = ?", data.Options.ConnectionId, data.Options.PlanKey))
@@ -57,7 +50,6 @@ func ConvertDeployBuilds(taskCtx plugin.SubTaskContext) errors.Error {
defer cursor.Close()
deployBuildIdGen := didgen.NewDomainIdGenerator(&models.BambooDeployBuild{})
- planBuildIdGen := didgen.NewDomainIdGenerator(&models.BambooPlanBuild{})
planIdGen := didgen.NewDomainIdGenerator(&models.BambooPlan{})
converter, err := api.NewDataConverter(api.DataConverterArgs{
@@ -66,11 +58,14 @@ func ConvertDeployBuilds(taskCtx plugin.SubTaskContext) errors.Error {
RawDataSubTaskArgs: *rawDataSubTaskArgs,
Convert: func(inputRow interface{}) ([]interface{}, errors.Error) {
deployBuild := inputRow.(*models.BambooDeployBuild)
+ if deployBuild.StartedDate == nil {
+ return nil, nil
+ }
domainTask := &devops.CICDTask{
DomainEntity: domainlayer.DomainEntity{
Id: deployBuildIdGen.Generate(data.Options.ConnectionId, deployBuild.DeployBuildId),
},
- PipelineId: planBuildIdGen.Generate(data.Options.ConnectionId, deployBuild.PlanKey),
+ PipelineId: deployBuildIdGen.Generate(data.Options.ConnectionId, deployBuild.DeployBuildId),
CicdScopeId: planIdGen.Generate(data.Options.ConnectionId, data.Options.PlanKey),
Name: deployBuild.DeploymentVersionName,
@@ -86,16 +81,39 @@ func ConvertDeployBuilds(taskCtx plugin.SubTaskContext) errors.Error {
Default: devops.IN_PROGRESS,
}, deployBuild.LifeCycleState),
- //DurationSec: uint64(deployBuild),
StartedDate: *deployBuild.StartedDate,
FinishedDate: deployBuild.FinishedDate,
}
domainTask.Type = devops.DEPLOYMENT
domainTask.Environment = deployBuild.Environment
+ if data.RegexEnricher.ReturnNameIfMatched(models.ENV_NAME_PATTERN, deployBuild.Environment) != "" {
+ domainTask.Environment = devops.PRODUCTION
+ }
+ if deployBuild.FinishedDate != nil && deployBuild.StartedDate != nil {
+ sec := deployBuild.FinishedDate.Sub(*deployBuild.StartedDate).Seconds()
+ if sec >= 0 {
+ domainTask.DurationSec = uint64(sec)
+ }
+ }
+ pipeline := &devops.CICDPipeline{
+ DomainEntity: domainlayer.DomainEntity{
+ Id: domainTask.PipelineId,
+ },
+ Name: domainTask.Name,
+ Result: domainTask.Result,
+ Status: domainTask.Status,
+ DurationSec: domainTask.DurationSec,
+ Type: domainTask.Type,
+ Environment: domainTask.Environment,
+ CreatedDate: domainTask.StartedDate,
+ FinishedDate: domainTask.FinishedDate,
+ CicdScopeId: domainTask.CicdScopeId,
+ }
return []interface{}{
domainTask,
+ pipeline,
}, nil
},
})
diff --git a/backend/plugins/bamboo/tasks/deploy_build_extractor.go b/backend/plugins/bamboo/tasks/deploy_build_extractor.go
index e7a4ba9ba..2a3ee2baa 100644
--- a/backend/plugins/bamboo/tasks/deploy_build_extractor.go
+++ b/backend/plugins/bamboo/tasks/deploy_build_extractor.go
@@ -21,7 +21,6 @@ import (
"encoding/json"
"github.com/apache/incubator-devlake/core/errors"
- "github.com/apache/incubator-devlake/core/models/domainlayer/devops"
"github.com/apache/incubator-devlake/core/plugin"
helper "github.com/apache/incubator-devlake/helpers/pluginhelper/api"
"github.com/apache/incubator-devlake/plugins/bamboo/models"
@@ -49,7 +48,7 @@ func ExtractDeployBuild(taskCtx plugin.SubTaskContext) errors.Error {
build := res.Convert(data.Options)
build.PlanKey = data.Options.PlanKey
- build.Environment = data.RegexEnricher.ReturnNameIfMatched(devops.PRODUCTION, build.DeploymentVersionName)
+ build.Environment = input.Name
return []interface{}{
build,
diff --git a/backend/plugins/bamboo/tasks/plan_build_convertor.go b/backend/plugins/bamboo/tasks/plan_build_convertor.go
index cda96e519..3402d1dba 100644
--- a/backend/plugins/bamboo/tasks/plan_build_convertor.go
+++ b/backend/plugins/bamboo/tasks/plan_build_convertor.go
@@ -41,13 +41,6 @@ var ConvertPlanBuildsMeta = plugin.SubTaskMeta{
func ConvertPlanBuilds(taskCtx plugin.SubTaskContext) errors.Error {
db := taskCtx.GetDal()
rawDataSubTaskArgs, data := CreateRawDataSubTaskArgs(taskCtx, RAW_PLAN_BUILD_TABLE)
- deploymentPattern := data.Options.DeploymentPattern
- productionPattern := data.Options.ProductionPattern
- regexEnricher := api.NewRegexEnricher()
- err := regexEnricher.AddRegexp(deploymentPattern, productionPattern)
- if err != nil {
- return err
- }
cursor, err := db.Cursor(
dal.From(&models.BambooPlanBuild{}),
dal.Where("connection_id = ? and plan_key = ?", data.Options.ConnectionId, data.Options.PlanKey))
diff --git a/backend/plugins/bamboo/tasks/plan_commit_convertor.go b/backend/plugins/bamboo/tasks/plan_commit_convertor.go
index 2232ed1b3..6144b082f 100644
--- a/backend/plugins/bamboo/tasks/plan_commit_convertor.go
+++ b/backend/plugins/bamboo/tasks/plan_commit_convertor.go
@@ -40,13 +40,6 @@ var ConvertPlanVcsMeta = plugin.SubTaskMeta{
func ConvertPlanVcs(taskCtx plugin.SubTaskContext) errors.Error {
db := taskCtx.GetDal()
rawDataSubTaskArgs, data := CreateRawDataSubTaskArgs(taskCtx, RAW_PLAN_BUILD_TABLE)
- deploymentPattern := data.Options.DeploymentPattern
- productionPattern := data.Options.ProductionPattern
- regexEnricher := api.NewRegexEnricher()
- err := regexEnricher.AddRegexp(deploymentPattern, productionPattern)
- if err != nil {
- return err
- }
cursor, err := db.Cursor(
dal.From(&models.BambooPlanBuildVcsRevision{}),
dal.Join(`left join _tool_bamboo_plan_builds on _tool_bamboo_plan_builds.plan_build_key = _tool_bamboo_plan_build_commits.plan_build_key`),