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 d69a4f216 Change the type of `duration_sec` from int to float (#6465)
d69a4f216 is described below
commit d69a4f216cebca7cbf97aa45fff5b83844998ae4
Author: Lynwee <[email protected]>
AuthorDate: Thu Nov 16 11:30:21 2023 +0800
Change the type of `duration_sec` from int to float (#6465)
* style(db): fix typos
* feat(db): make `duration_sec` field in all tables `float64` instead of
`int64`
* feat(db): add migration sciprt
* fix(e2e): fix e2e test
---
.../models/domainlayer/devops/cicd_deployment.go | 2 +-
.../domainlayer/devops/cicd_deployment_commit.go | 2 +-
.../models/domainlayer/devops/cicd_pipeline.go | 2 +-
.../core/models/domainlayer/devops/cicd_task.go | 2 +-
...ipeline.go => 20220905_modify_cicd_pipeline.go} | 0
...cicd_tasks.go => 20220908_modify_cicd_tasks.go} | 0
...s_diffs.go => 20221109_modify_commits_diffs.go} | 0
.../20231115_change_duration_sec_to_float64.go | 139 +++++++++++++++++++++
backend/core/models/migrationscripts/register.go | 1 +
backend/go.mod | 2 +-
backend/go.sum | 2 +
.../plugins/bamboo/tasks/deploy_build_convertor.go | 2 +-
.../plugins/bamboo/tasks/job_build_convertor.go | 2 +-
.../plugins/bamboo/tasks/plan_build_convertor.go | 2 +-
.../bitbucket/tasks/deployment_convertor.go | 4 +-
.../plugins/bitbucket/tasks/pipeline_convertor.go | 2 +-
.../bitbucket/tasks/pipeline_steps_convertor.go | 2 +-
backend/plugins/circleci/models/job.go | 2 +-
backend/plugins/circleci/models/workflow.go | 2 +-
backend/plugins/circleci/tasks/job_extractor.go | 2 +-
.../plugins/circleci/tasks/workflow_extractor.go | 2 +-
.../dora/tasks/deployment_commits_generator.go | 2 +-
backend/plugins/github/tasks/cicd_job_convertor.go | 2 +-
backend/plugins/github/tasks/cicd_run_convertor.go | 2 +-
.../plugins/github/tasks/deployment_convertor.go | 2 +-
.../snapshot_tables/cicd_deployment_commits.csv | 14 +--
.../e2e/snapshot_tables/cicd_deployments.csv | 14 +--
.../gitlab/e2e/snapshot_tables/cicd_pipelines.csv | 26 ++--
.../gitlab/e2e/snapshot_tables/cicd_tasks.csv | 80 ++++++------
.../snapshot_tables/cicd_tasks_no_prod_regex.csv | 80 ++++++------
.../plugins/gitlab/tasks/deployment_convertor.go | 6 +-
backend/plugins/gitlab/tasks/job_convertor.go | 2 +-
backend/plugins/gitlab/tasks/pipeline_convertor.go | 2 +-
.../jenkins/e2e/snapshot_tables/cicd_pipelines.csv | 26 ++--
.../jenkins/e2e/snapshot_tables/cicd_tasks.csv | 24 ++--
.../snapshot_tables/cicd_tasks_after_stages.csv | 28 ++---
.../plugins/jenkins/tasks/build_cicd_convertor.go | 15 ++-
backend/plugins/jenkins/tasks/stage_convertor.go | 13 +-
backend/plugins/webhook/api/deployments.go | 5 +-
39 files changed, 332 insertions(+), 185 deletions(-)
diff --git a/backend/core/models/domainlayer/devops/cicd_deployment.go
b/backend/core/models/domainlayer/devops/cicd_deployment.go
index 3eb864547..fb63d1dba 100644
--- a/backend/core/models/domainlayer/devops/cicd_deployment.go
+++ b/backend/core/models/domainlayer/devops/cicd_deployment.go
@@ -32,7 +32,7 @@ type CICDDeployment struct {
CreatedDate time.Time
StartedDate *time.Time
FinishedDate *time.Time
- DurationSec *uint64
+ DurationSec *float64
}
func (CICDDeployment) TableName() string {
diff --git a/backend/core/models/domainlayer/devops/cicd_deployment_commit.go
b/backend/core/models/domainlayer/devops/cicd_deployment_commit.go
index e32001f3f..5d37448ad 100644
--- a/backend/core/models/domainlayer/devops/cicd_deployment_commit.go
+++ b/backend/core/models/domainlayer/devops/cicd_deployment_commit.go
@@ -34,7 +34,7 @@ type CicdDeploymentCommit struct {
CreatedDate time.Time
StartedDate *time.Time
FinishedDate *time.Time
- DurationSec *uint64
+ DurationSec *float64
CommitSha string
`gorm:"primaryKey;type:varchar(255)"`
RefName string `gorm:"type:varchar(255)"` // to
delete?
RepoId string `gorm:"type:varchar(255)"`
diff --git a/backend/core/models/domainlayer/devops/cicd_pipeline.go
b/backend/core/models/domainlayer/devops/cicd_pipeline.go
index e89ca228e..5bc4f3250 100644
--- a/backend/core/models/domainlayer/devops/cicd_pipeline.go
+++ b/backend/core/models/domainlayer/devops/cicd_pipeline.go
@@ -32,7 +32,7 @@ type CICDPipeline struct {
Result string `gorm:"type:varchar(100)"`
Status string `gorm:"type:varchar(100)"`
Type string `gorm:"type:varchar(100);comment: to indicate this
is CI or CD"`
- DurationSec uint64
+ DurationSec float64
Environment string `gorm:"type:varchar(255)"`
CreatedDate time.Time
FinishedDate *time.Time
diff --git a/backend/core/models/domainlayer/devops/cicd_task.go
b/backend/core/models/domainlayer/devops/cicd_task.go
index 6c925355f..8314d4cce 100644
--- a/backend/core/models/domainlayer/devops/cicd_task.go
+++ b/backend/core/models/domainlayer/devops/cicd_task.go
@@ -45,7 +45,7 @@ type CICDTask struct {
Status string `gorm:"type:varchar(100)"`
Type string `gorm:"type:varchar(100);comment: to indicate this
is CI or CD"`
Environment string `gorm:"type:varchar(255)"`
- DurationSec uint64
+ DurationSec float64
StartedDate time.Time
FinishedDate *time.Time
CicdScopeId string `gorm:"index;type:varchar(255)"`
diff --git
a/backend/core/models/migrationscripts/20220905_modfiy_cicd_pipeline.go
b/backend/core/models/migrationscripts/20220905_modify_cicd_pipeline.go
similarity index 100%
rename from
backend/core/models/migrationscripts/20220905_modfiy_cicd_pipeline.go
rename to backend/core/models/migrationscripts/20220905_modify_cicd_pipeline.go
diff --git a/backend/core/models/migrationscripts/20220908_modfiy_cicd_tasks.go
b/backend/core/models/migrationscripts/20220908_modify_cicd_tasks.go
similarity index 100%
rename from backend/core/models/migrationscripts/20220908_modfiy_cicd_tasks.go
rename to backend/core/models/migrationscripts/20220908_modify_cicd_tasks.go
diff --git
a/backend/core/models/migrationscripts/20221109_modfiy_commits_diffs.go
b/backend/core/models/migrationscripts/20221109_modify_commits_diffs.go
similarity index 100%
rename from
backend/core/models/migrationscripts/20221109_modfiy_commits_diffs.go
rename to backend/core/models/migrationscripts/20221109_modify_commits_diffs.go
diff --git
a/backend/core/models/migrationscripts/20231115_change_duration_sec_to_float64.go
b/backend/core/models/migrationscripts/20231115_change_duration_sec_to_float64.go
new file mode 100644
index 000000000..69adb2ab3
--- /dev/null
+++
b/backend/core/models/migrationscripts/20231115_change_duration_sec_to_float64.go
@@ -0,0 +1,139 @@
+/*
+Licensed to the Apache Software Foundation (ASF) under one or more
+contributor license agreements. See the NOTICE file distributed with
+this work for additional information regarding copyright ownership.
+The ASF licenses this file to You under the Apache License, Version 2.0
+(the "License"); you may not use this file except in compliance with
+the License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+*/
+
+package migrationscripts
+
+import (
+ "github.com/apache/incubator-devlake/core/context"
+ "github.com/apache/incubator-devlake/core/dal"
+ "github.com/apache/incubator-devlake/core/errors"
+ "github.com/apache/incubator-devlake/core/plugin"
+ "github.com/apache/incubator-devlake/helpers/migrationhelper"
+)
+
+var _ plugin.MigrationScript = (*changeDurationSecToFloat64)(nil)
+
+type cicdDeployment2023115 struct {
+ DurationSec float64
+}
+
+func (cicdDeployment2023115) TableName() string {
+ return "cicd_deployments"
+}
+
+type cicdDeploymentCommit2023115 struct {
+ DurationSec float64
+}
+
+func (cicdDeploymentCommit2023115) TableName() string {
+ return "cicd_deployment_commits"
+}
+
+type cicdPipeline2023115 struct {
+ DurationSec float64
+}
+
+func (cicdPipeline2023115) TableName() string {
+ return "cicd_pipelines"
+}
+
+type cicdTask2023115 struct {
+ DurationSec float64
+}
+
+func (cicdTask2023115) TableName() string {
+ return "cicd_tasks"
+}
+
+type changeDurationSecToFloat64 struct{}
+
+func (u *changeDurationSecToFloat64) Up(basicRes context.BasicRes)
errors.Error {
+ db := basicRes.GetDal()
+ if err := migrationhelper.ChangeColumnsType[cicdDeployment2023115](
+ basicRes,
+ u,
+ cicdDeployment2023115{}.TableName(),
+ []string{"duration_sec"},
+ func(tmpColumnParams []interface{}) errors.Error {
+ return db.UpdateColumn(
+ &cicdDeployment2023115{},
+ "duration_sec",
+ dal.DalClause{Expr: " ? ", Params:
tmpColumnParams},
+ dal.Where("? != 0", tmpColumnParams...),
+ )
+ },
+ ); err != nil {
+ return err
+ }
+ if err :=
migrationhelper.ChangeColumnsType[cicdDeploymentCommit2023115](
+ basicRes,
+ u,
+ cicdDeploymentCommit2023115{}.TableName(),
+ []string{"duration_sec"},
+ func(tmpColumnParams []interface{}) errors.Error {
+ return db.UpdateColumn(
+ &cicdDeploymentCommit2023115{},
+ "duration_sec",
+ dal.DalClause{Expr: " ? ", Params:
tmpColumnParams},
+ dal.Where("? != 0", tmpColumnParams...),
+ )
+ },
+ ); err != nil {
+ return err
+ }
+ if err := migrationhelper.ChangeColumnsType[cicdPipeline2023115](
+ basicRes,
+ u,
+ cicdPipeline2023115{}.TableName(),
+ []string{"duration_sec"},
+ func(tmpColumnParams []interface{}) errors.Error {
+ return db.UpdateColumn(
+ &cicdPipeline2023115{},
+ "duration_sec",
+ dal.DalClause{Expr: " ? ", Params:
tmpColumnParams},
+ dal.Where("? != 0", tmpColumnParams...),
+ )
+ },
+ ); err != nil {
+ return err
+ }
+ if err := migrationhelper.ChangeColumnsType[cicdTask2023115](
+ basicRes,
+ u,
+ cicdTask2023115{}.TableName(),
+ []string{"duration_sec"},
+ func(tmpColumnParams []interface{}) errors.Error {
+ return db.UpdateColumn(
+ &cicdTask2023115{},
+ "duration_sec",
+ dal.DalClause{Expr: " ? ", Params:
tmpColumnParams},
+ dal.Where("? != 0", tmpColumnParams...),
+ )
+ },
+ ); err != nil {
+ return err
+ }
+ return nil
+}
+
+func (*changeDurationSecToFloat64) Version() uint64 {
+ return 20231115170000
+}
+
+func (*changeDurationSecToFloat64) Name() string {
+ return "change duration_sec field to float64 in all related tables"
+}
diff --git a/backend/core/models/migrationscripts/register.go
b/backend/core/models/migrationscripts/register.go
index 6e4e78c64..241b6af19 100644
--- a/backend/core/models/migrationscripts/register.go
+++ b/backend/core/models/migrationscripts/register.go
@@ -96,5 +96,6 @@ func All() []plugin.MigrationScript {
new(addSyncPolicy),
new(addIssueCustomArrayField),
new(removePositionFromPullRequestComments),
+ new(changeDurationSecToFloat64),
}
}
diff --git a/backend/go.mod b/backend/go.mod
index 11f3c1b4c..a61d3ff2c 100644
--- a/backend/go.mod
+++ b/backend/go.mod
@@ -21,7 +21,7 @@ require (
github.com/robfig/cron/v3 v3.0.0
github.com/sirupsen/logrus v1.9.0
github.com/spf13/afero v1.6.0 // indirect
- github.com/spf13/cast v1.4.1
+ github.com/spf13/cast v1.5.1
github.com/spf13/cobra v1.5.0
github.com/spf13/viper v1.8.1
github.com/stretchr/testify v1.8.3
diff --git a/backend/go.sum b/backend/go.sum
index b7aa2095f..9739816ad 100644
--- a/backend/go.sum
+++ b/backend/go.sum
@@ -592,6 +592,8 @@ github.com/spf13/cast v1.3.0/go.mod
h1:Qx5cxh0v+4UWYiBimWS+eyWzqEqokIECu5etghLkU
github.com/spf13/cast v1.3.1/go.mod
h1:Qx5cxh0v+4UWYiBimWS+eyWzqEqokIECu5etghLkUJE=
github.com/spf13/cast v1.4.1 h1:s0hze+J0196ZfEMTs80N7UlFt0BDuQ7Q+JDnHiMWKdA=
github.com/spf13/cast v1.4.1/go.mod
h1:Qx5cxh0v+4UWYiBimWS+eyWzqEqokIECu5etghLkUJE=
+github.com/spf13/cast v1.5.1 h1:R+kOtfhWQE6TVQzY+4D7wJLBgkdVasCEFxSUBYBYIlA=
+github.com/spf13/cast v1.5.1/go.mod
h1:b9PdjNptOpzXr7Rq1q9gJML/2cdGQAo69NKzQ10KN48=
github.com/spf13/cobra v0.0.5/go.mod
h1:3K3wKZymM7VvHMDS9+Akkh4K60UwM26emMESw8tLCHU=
github.com/spf13/cobra v1.5.0 h1:X+jTBEBqF0bHN+9cSMgmfuvv2VHJ9ezmFNf9Y/XstYU=
github.com/spf13/cobra v1.5.0/go.mod
h1:dWXEIy2H428czQCjInthrTRUg7yKbok+2Qi/yBIJoUM=
diff --git a/backend/plugins/bamboo/tasks/deploy_build_convertor.go
b/backend/plugins/bamboo/tasks/deploy_build_convertor.go
index 885206137..40b8adad0 100644
--- a/backend/plugins/bamboo/tasks/deploy_build_convertor.go
+++ b/backend/plugins/bamboo/tasks/deploy_build_convertor.go
@@ -140,7 +140,7 @@ func ConvertDeployBuilds(taskCtx plugin.SubTaskContext)
errors.Error {
deploymentCommit.Environment = devops.PRODUCTION
}
if input.FinishedDate != nil && input.StartedDate !=
nil {
- duration :=
uint64(input.FinishedDate.Sub(*input.StartedDate).Seconds())
+ duration :=
input.FinishedDate.Sub(*input.StartedDate).Seconds()
deploymentCommit.DurationSec = &duration
}
fakeRepoUrl, err :=
generateFakeRepoUrl(data.ApiClient.GetEndpoint(), input.RepositoryId)
diff --git a/backend/plugins/bamboo/tasks/job_build_convertor.go
b/backend/plugins/bamboo/tasks/job_build_convertor.go
index d170d177e..89784a5d7 100644
--- a/backend/plugins/bamboo/tasks/job_build_convertor.go
+++ b/backend/plugins/bamboo/tasks/job_build_convertor.go
@@ -65,7 +65,7 @@ func ConvertJobBuilds(taskCtx plugin.SubTaskContext)
errors.Error {
domainJobBuild := &devops.CICDTask{
DomainEntity: domainlayer.DomainEntity{Id:
jobBuildIdGen.Generate(data.Options.ConnectionId, line.JobBuildKey)},
Name: line.JobName,
- DurationSec:
uint64(line.BuildDurationInSeconds),
+ DurationSec:
float64(line.BuildDurationInSeconds),
StartedDate: *line.BuildStartedTime,
FinishedDate: line.BuildCompletedDate,
PipelineId:
planBuildIdGen.Generate(data.Options.ConnectionId, line.PlanBuildKey),
diff --git a/backend/plugins/bamboo/tasks/plan_build_convertor.go
b/backend/plugins/bamboo/tasks/plan_build_convertor.go
index ef235c87e..40e797d5c 100644
--- a/backend/plugins/bamboo/tasks/plan_build_convertor.go
+++ b/backend/plugins/bamboo/tasks/plan_build_convertor.go
@@ -64,7 +64,7 @@ func ConvertPlanBuilds(taskCtx plugin.SubTaskContext)
errors.Error {
domainPlanBuild := &devops.CICDPipeline{
DomainEntity: domainlayer.DomainEntity{Id:
planBuildIdGen.Generate(data.Options.ConnectionId, line.PlanBuildKey)},
Name: line.GenerateCICDPipeLineName(),
- DurationSec:
uint64(line.BuildDurationInSeconds),
+ DurationSec:
float64(line.BuildDurationInSeconds),
CreatedDate: *line.BuildStartedTime,
FinishedDate: line.BuildCompletedDate,
CicdScopeId:
planIdGen.Generate(data.Options.ConnectionId, data.Options.PlanKey),
diff --git a/backend/plugins/bitbucket/tasks/deployment_convertor.go
b/backend/plugins/bitbucket/tasks/deployment_convertor.go
index da11e9dd7..b19512d93 100644
--- a/backend/plugins/bitbucket/tasks/deployment_convertor.go
+++ b/backend/plugins/bitbucket/tasks/deployment_convertor.go
@@ -75,9 +75,9 @@ func ConvertDeployments(taskCtx plugin.SubTaskContext)
errors.Error {
Convert: func(inputRow interface{}) ([]interface{},
errors.Error) {
bitbucketDeployment :=
inputRow.(*bitbucketDeploymentWithRefName)
- var duration *uint64
+ var duration *float64
if bitbucketDeployment.CompletedOn != nil {
- d :=
uint64(bitbucketDeployment.CompletedOn.Sub(*bitbucketDeployment.StartedOn).Seconds())
+ d :=
bitbucketDeployment.CompletedOn.Sub(*bitbucketDeployment.StartedOn).Seconds()
duration = &d
}
domainDeployCommit := &devops.CicdDeploymentCommit{
diff --git a/backend/plugins/bitbucket/tasks/pipeline_convertor.go
b/backend/plugins/bitbucket/tasks/pipeline_convertor.go
index 219599f09..7132e753b 100644
--- a/backend/plugins/bitbucket/tasks/pipeline_convertor.go
+++ b/backend/plugins/bitbucket/tasks/pipeline_convertor.go
@@ -100,7 +100,7 @@ func ConvertPipelines(taskCtx plugin.SubTaskContext)
errors.Error {
Type: bitbucketPipeline.Type,
Environment: bitbucketPipeline.Environment,
CreatedDate: createdAt,
- DurationSec:
bitbucketPipeline.DurationInSeconds,
+ DurationSec:
float64(bitbucketPipeline.DurationInSeconds),
FinishedDate:
bitbucketPipeline.BitbucketCompleteOn,
CicdScopeId: repoId,
}
diff --git a/backend/plugins/bitbucket/tasks/pipeline_steps_convertor.go
b/backend/plugins/bitbucket/tasks/pipeline_steps_convertor.go
index 55baa8196..0eb10bb00 100644
--- a/backend/plugins/bitbucket/tasks/pipeline_steps_convertor.go
+++ b/backend/plugins/bitbucket/tasks/pipeline_steps_convertor.go
@@ -88,7 +88,7 @@ func ConvertPipelineSteps(taskCtx plugin.SubTaskContext)
errors.Error {
// rebuild the FinishedDate
if domainTask.Status == devops.STATUS_DONE {
domainTask.FinishedDate =
bitbucketPipelineStep.CompletedOn
- domainTask.DurationSec =
uint64(bitbucketPipelineStep.DurationInSeconds)
+ domainTask.DurationSec =
float64(bitbucketPipelineStep.DurationInSeconds)
}
return []interface{}{
domainTask,
diff --git a/backend/plugins/circleci/models/job.go
b/backend/plugins/circleci/models/job.go
index f0e18d77f..8de32dbeb 100644
--- a/backend/plugins/circleci/models/job.go
+++ b/backend/plugins/circleci/models/job.go
@@ -36,7 +36,7 @@ type CircleciJob struct {
Type string `gorm:"type:varchar(100)"
json:"type"`
ApprovalRequestId string `gorm:"type:varchar(100)"
json:"approval_request_id"`
StoppedAt *common.Iso8601Time `json:"stopped_at"`
- DurationSec uint64 `json:"duration_sec"`
+ DurationSec float64 `json:"duration_sec"`
PipelineId string `gorm:"type:varchar(100)"
json:"pipeline_id"`
common.NoPKModel `swaggerignore:"true" json:"-" mapstructure:"-"`
diff --git a/backend/plugins/circleci/models/workflow.go
b/backend/plugins/circleci/models/workflow.go
index a1e0bcf2c..f4e5e9f71 100644
--- a/backend/plugins/circleci/models/workflow.go
+++ b/backend/plugins/circleci/models/workflow.go
@@ -35,7 +35,7 @@ type CircleciWorkflow struct {
PipelineNumber int64 `json:"pipeline_number"`
CreatedAt *common.Iso8601Time `json:"created_at"`
StoppedAt *common.Iso8601Time `json:"stopped_at"`
- DurationSec uint64 `json:"duration_sec"`
+ DurationSec float64 `json:"duration_sec"`
common.NoPKModel `swaggerignore:"true" json:"-" mapstructure:"-"`
}
diff --git a/backend/plugins/circleci/tasks/job_extractor.go
b/backend/plugins/circleci/tasks/job_extractor.go
index a7b89a1a0..f9ccc185b 100644
--- a/backend/plugins/circleci/tasks/job_extractor.go
+++ b/backend/plugins/circleci/tasks/job_extractor.go
@@ -58,7 +58,7 @@ func ExtractJobs(taskCtx plugin.SubTaskContext) errors.Error {
if userRes.StartedAt != nil && userRes.StoppedAt != nil
{
startTime := userRes.StartedAt.ToTime()
stopTime := userRes.StoppedAt.ToTime()
- toolL.DurationSec =
uint64(stopTime.Sub(startTime).Seconds())
+ toolL.DurationSec =
stopTime.Sub(startTime).Seconds()
}
return []interface{}{
&toolL,
diff --git a/backend/plugins/circleci/tasks/workflow_extractor.go
b/backend/plugins/circleci/tasks/workflow_extractor.go
index 3e1161c8d..603847b3c 100644
--- a/backend/plugins/circleci/tasks/workflow_extractor.go
+++ b/backend/plugins/circleci/tasks/workflow_extractor.go
@@ -51,7 +51,7 @@ func ExtractWorkflows(taskCtx plugin.SubTaskContext)
errors.Error {
if userRes.CreatedAt != nil && userRes.StoppedAt != nil
{
startTime := userRes.CreatedAt.ToTime()
endTime := userRes.StoppedAt.ToTime()
- toolL.DurationSec =
uint64(endTime.Sub(startTime).Seconds())
+ toolL.DurationSec =
endTime.Sub(startTime).Seconds()
}
return []interface{}{
&toolL,
diff --git a/backend/plugins/dora/tasks/deployment_commits_generator.go
b/backend/plugins/dora/tasks/deployment_commits_generator.go
index 34237e141..7061313b3 100644
--- a/backend/plugins/dora/tasks/deployment_commits_generator.go
+++ b/backend/plugins/dora/tasks/deployment_commits_generator.go
@@ -43,7 +43,7 @@ type pipelineCommitEx struct {
PipelineName string
Result string
Status string
- DurationSec *uint64
+ DurationSec *float64
CreatedDate *time.Time
FinishedDate *time.Time
Environment string
diff --git a/backend/plugins/github/tasks/cicd_job_convertor.go
b/backend/plugins/github/tasks/cicd_job_convertor.go
index 1b48ef160..7be00b0c7 100644
--- a/backend/plugins/github/tasks/cicd_job_convertor.go
+++ b/backend/plugins/github/tasks/cicd_job_convertor.go
@@ -109,7 +109,7 @@ func ConvertJobs(taskCtx plugin.SubTaskContext) (err
errors.Error) {
}
if domainJob.Status == devops.STATUS_DONE {
- domainJob.DurationSec =
uint64(line.CompletedAt.Sub(*line.StartedAt).Seconds())
+ domainJob.DurationSec =
line.CompletedAt.Sub(*line.StartedAt).Seconds()
}
return []interface{}{
diff --git a/backend/plugins/github/tasks/cicd_run_convertor.go
b/backend/plugins/github/tasks/cicd_run_convertor.go
index d6967e865..a6b08e5eb 100644
--- a/backend/plugins/github/tasks/cicd_run_convertor.go
+++ b/backend/plugins/github/tasks/cicd_run_convertor.go
@@ -109,7 +109,7 @@ func ConvertRuns(taskCtx plugin.SubTaskContext)
errors.Error {
}, line.Status),
}
if domainPipeline.Status == devops.STATUS_DONE {
- domainPipeline.DurationSec =
uint64(line.GithubUpdatedAt.Sub(*line.GithubCreatedAt).Seconds())
+ domainPipeline.DurationSec =
line.GithubUpdatedAt.Sub(*line.GithubCreatedAt).Seconds()
}
domainPipelineCommit := &devops.CiCDPipelineCommit{
diff --git a/backend/plugins/github/tasks/deployment_convertor.go
b/backend/plugins/github/tasks/deployment_convertor.go
index fa49b913a..7047b6862 100644
--- a/backend/plugins/github/tasks/deployment_convertor.go
+++ b/backend/plugins/github/tasks/deployment_convertor.go
@@ -95,7 +95,7 @@ func ConvertDeployment(taskCtx plugin.SubTaskContext)
errors.Error {
RepoUrl: githubDeployment.RepositoryUrl,
}
- durationSec :=
uint64(githubDeployment.UpdatedDate.Sub(githubDeployment.CreatedDate).Seconds())
+ durationSec :=
githubDeployment.UpdatedDate.Sub(githubDeployment.CreatedDate).Seconds()
deploymentCommit.DurationSec = &durationSec
if data.RegexEnricher != nil {
diff --git
a/backend/plugins/gitlab/e2e/snapshot_tables/cicd_deployment_commits.csv
b/backend/plugins/gitlab/e2e/snapshot_tables/cicd_deployment_commits.csv
index 507dc7072..6939cd9e0 100644
--- a/backend/plugins/gitlab/e2e/snapshot_tables/cicd_deployment_commits.csv
+++ b/backend/plugins/gitlab/e2e/snapshot_tables/cicd_deployment_commits.csv
@@ -1,9 +1,9 @@
id,commit_sha,cicd_scope_id,cicd_deployment_id,name,result,status,environment,created_date,started_date,finished_date,duration_sec,ref_name,repo_id,repo_url,prev_success_deployment_commit_id
-gitlab:GitlabDeployment:1:12345678:13426753,add237f6852e6108ee8e0246780a54ce909c6087,gitlab:GitlabProject:1:12345678,gitlab:GitlabDeployment:1:12345678:13426753,test_deploy_vdev:13426753,SUCCESS,DONE,staging,2019-03-13T14:14:24.109+00:00,2019-03-13T14:17:33.559+00:00,2019-03-13T14:17:47.640+00:00,14,master,gitlab:GitlabProject:1:12345678,https://gitlab.com/gitlab-data/snowflake_spend,
-gitlab:GitlabDeployment:1:12345678:13432654,8373d207f0f2cc4414c4b1ad359b5af56e979d59,gitlab:GitlabProject:1:12345678,gitlab:GitlabDeployment:1:12345678:13432654,test_deploy_vdev:13432654,SUCCESS,DONE,staging,2019-03-13T14:53:48.148+00:00,2019-03-13T14:57:46.441+00:00,2019-03-13T14:57:58.845+00:00,12,master,gitlab:GitlabProject:1:12345678,https://gitlab.com/gitlab-data/snowflake_spend,
+gitlab:GitlabDeployment:1:12345678:13426753,add237f6852e6108ee8e0246780a54ce909c6087,gitlab:GitlabProject:1:12345678,gitlab:GitlabDeployment:1:12345678:13426753,test_deploy_vdev:13426753,SUCCESS,DONE,staging,2019-03-13T14:14:24.109+00:00,2019-03-13T14:17:33.559+00:00,2019-03-13T14:17:47.640+00:00,14.080506,master,gitlab:GitlabProject:1:12345678,https://gitlab.com/gitlab-data/snowflake_spend,
+gitlab:GitlabDeployment:1:12345678:13432654,8373d207f0f2cc4414c4b1ad359b5af56e979d59,gitlab:GitlabProject:1:12345678,gitlab:GitlabDeployment:1:12345678:13432654,test_deploy_vdev:13432654,SUCCESS,DONE,staging,2019-03-13T14:53:48.148+00:00,2019-03-13T14:57:46.441+00:00,2019-03-13T14:57:58.845+00:00,12.403719,master,gitlab:GitlabProject:1:12345678,https://gitlab.com/gitlab-data/snowflake_spend,
gitlab:GitlabDeployment:1:12345678:13432768,35c3a3d82586fa0bcdb2a73b812081ece4e83429,gitlab:GitlabProject:1:12345678,gitlab:GitlabDeployment:1:12345678:13432768,test_deploy_vdev:13432768,FAILURE,DONE,staging,2019-03-13T14:55:21.182+00:00,,,,master,gitlab:GitlabProject:1:12345678,https://gitlab.com/gitlab-data/snowflake_spend,
-gitlab:GitlabDeployment:1:12345678:13436532,35c3a3d82586fa0bcdb2a73b812081ece4e83429,gitlab:GitlabProject:1:12345678,gitlab:GitlabDeployment:1:12345678:13436532,deploy_vdev:13436532,FAILURE,DONE,production,2019-03-13T15:21:00.302+00:00,2019-03-13T15:21:07.335+00:00,2019-03-13T15:21:27.825+00:00,20,deploy,gitlab:GitlabProject:1:12345678,https://gitlab.com/gitlab-data/snowflake_spend,
-gitlab:GitlabDeployment:1:12345678:13436763,fc449afa34b6732752d2c8ca117833e8cc1226dc,gitlab:GitlabProject:1:12345678,gitlab:GitlabDeployment:1:12345678:13436763,deploy_vdev:13436763,,OTHER,production,2019-03-13T15:23:35.859+00:00,2019-03-13T15:23:40.064+00:00,2019-03-13T15:23:55.970+00:00,15,deploy,gitlab:GitlabProject:1:12345678,https://gitlab.com/gitlab-data/snowflake_spend,
-gitlab:GitlabDeployment:1:12345678:13436778,fc449afa34b6732752d2c8ca117833e8cc1226dc,gitlab:GitlabProject:1:12345678,gitlab:GitlabDeployment:1:12345678:13436778,test_deploy_vdev:13436778,,IN_PROGRESS,staging,2019-03-13T15:23:52.979+00:00,,2019-03-13T15:25:41.412+00:00,108,master,gitlab:GitlabProject:1:12345678,https://gitlab.com/gitlab-data/snowflake_spend,
-gitlab:GitlabDeployment:1:12345678:13436915,d8e7440fc02b62064624c788f4e4da19ca7be198,gitlab:GitlabProject:1:12345678,gitlab:GitlabDeployment:1:12345678:13436915,test_deploy_vdev:13436915,,OTHER,staging,2019-03-13T15:25:15.583+00:00,,2019-03-13T15:28:32.934+00:00,197,master,gitlab:GitlabProject:1:12345678,https://gitlab.com/gitlab-data/snowflake_spend,
-gitlab:GitlabDeployment:1:12345678:13436986,d8e7440fc02b62064624c788f4e4da19ca7be198,gitlab:GitlabProject:1:12345678,gitlab:GitlabDeployment:1:12345678:13436986,deploy_vdev:13436986,,OTHER,production,2019-03-13T15:25:46.042+00:00,2019-03-13T15:26:19.170+00:00,2019-03-13T15:26:37.468+00:00,18,deploy,gitlab:GitlabProject:1:12345678,https://gitlab.com/gitlab-data/snowflake_spend,
+gitlab:GitlabDeployment:1:12345678:13436532,35c3a3d82586fa0bcdb2a73b812081ece4e83429,gitlab:GitlabProject:1:12345678,gitlab:GitlabDeployment:1:12345678:13436532,deploy_vdev:13436532,FAILURE,DONE,production,2019-03-13T15:21:00.302+00:00,2019-03-13T15:21:07.335+00:00,2019-03-13T15:21:27.825+00:00,20.489227,deploy,gitlab:GitlabProject:1:12345678,https://gitlab.com/gitlab-data/snowflake_spend,
+gitlab:GitlabDeployment:1:12345678:13436763,fc449afa34b6732752d2c8ca117833e8cc1226dc,gitlab:GitlabProject:1:12345678,gitlab:GitlabDeployment:1:12345678:13436763,deploy_vdev:13436763,,OTHER,production,2019-03-13T15:23:35.859+00:00,2019-03-13T15:23:40.064+00:00,2019-03-13T15:23:55.970+00:00,15.905676,deploy,gitlab:GitlabProject:1:12345678,https://gitlab.com/gitlab-data/snowflake_spend,
+gitlab:GitlabDeployment:1:12345678:13436778,fc449afa34b6732752d2c8ca117833e8cc1226dc,gitlab:GitlabProject:1:12345678,gitlab:GitlabDeployment:1:12345678:13436778,test_deploy_vdev:13436778,,IN_PROGRESS,staging,2019-03-13T15:23:52.979+00:00,,2019-03-13T15:25:41.412+00:00,108.526,master,gitlab:GitlabProject:1:12345678,https://gitlab.com/gitlab-data/snowflake_spend,
+gitlab:GitlabDeployment:1:12345678:13436915,d8e7440fc02b62064624c788f4e4da19ca7be198,gitlab:GitlabProject:1:12345678,gitlab:GitlabDeployment:1:12345678:13436915,test_deploy_vdev:13436915,,OTHER,staging,2019-03-13T15:25:15.583+00:00,,2019-03-13T15:28:32.934+00:00,197.474,master,gitlab:GitlabProject:1:12345678,https://gitlab.com/gitlab-data/snowflake_spend,
+gitlab:GitlabDeployment:1:12345678:13436986,d8e7440fc02b62064624c788f4e4da19ca7be198,gitlab:GitlabProject:1:12345678,gitlab:GitlabDeployment:1:12345678:13436986,deploy_vdev:13436986,,OTHER,production,2019-03-13T15:25:46.042+00:00,2019-03-13T15:26:19.170+00:00,2019-03-13T15:26:37.468+00:00,18.298368,deploy,gitlab:GitlabProject:1:12345678,https://gitlab.com/gitlab-data/snowflake_spend,
diff --git a/backend/plugins/gitlab/e2e/snapshot_tables/cicd_deployments.csv
b/backend/plugins/gitlab/e2e/snapshot_tables/cicd_deployments.csv
index 30d5d60b0..f2521b095 100644
--- a/backend/plugins/gitlab/e2e/snapshot_tables/cicd_deployments.csv
+++ b/backend/plugins/gitlab/e2e/snapshot_tables/cicd_deployments.csv
@@ -1,9 +1,9 @@
id,cicd_scope_id,name,result,status,environment,created_date,started_date,finished_date,duration_sec
-gitlab:GitlabDeployment:1:12345678:13426753,gitlab:GitlabProject:1:12345678,test_deploy_vdev:13426753,SUCCESS,DONE,staging,2019-03-13T14:14:24.109+00:00,2019-03-13T14:17:33.559+00:00,2019-03-13T14:17:47.640+00:00,14
-gitlab:GitlabDeployment:1:12345678:13432654,gitlab:GitlabProject:1:12345678,test_deploy_vdev:13432654,SUCCESS,DONE,staging,2019-03-13T14:53:48.148+00:00,2019-03-13T14:57:46.441+00:00,2019-03-13T14:57:58.845+00:00,12
+gitlab:GitlabDeployment:1:12345678:13426753,gitlab:GitlabProject:1:12345678,test_deploy_vdev:13426753,SUCCESS,DONE,staging,2019-03-13T14:14:24.109+00:00,2019-03-13T14:17:33.559+00:00,2019-03-13T14:17:47.640+00:00,14.080506
+gitlab:GitlabDeployment:1:12345678:13432654,gitlab:GitlabProject:1:12345678,test_deploy_vdev:13432654,SUCCESS,DONE,staging,2019-03-13T14:53:48.148+00:00,2019-03-13T14:57:46.441+00:00,2019-03-13T14:57:58.845+00:00,12.403719
gitlab:GitlabDeployment:1:12345678:13432768,gitlab:GitlabProject:1:12345678,test_deploy_vdev:13432768,FAILURE,DONE,staging,2019-03-13T14:55:21.182+00:00,,,
-gitlab:GitlabDeployment:1:12345678:13436532,gitlab:GitlabProject:1:12345678,deploy_vdev:13436532,FAILURE,DONE,production,2019-03-13T15:21:00.302+00:00,2019-03-13T15:21:07.335+00:00,2019-03-13T15:21:27.825+00:00,20
-gitlab:GitlabDeployment:1:12345678:13436763,gitlab:GitlabProject:1:12345678,deploy_vdev:13436763,,OTHER,production,2019-03-13T15:23:35.859+00:00,2019-03-13T15:23:40.064+00:00,2019-03-13T15:23:55.970+00:00,15
-gitlab:GitlabDeployment:1:12345678:13436778,gitlab:GitlabProject:1:12345678,test_deploy_vdev:13436778,,IN_PROGRESS,staging,2019-03-13T15:23:52.979+00:00,,2019-03-13T15:25:41.412+00:00,108
-gitlab:GitlabDeployment:1:12345678:13436915,gitlab:GitlabProject:1:12345678,test_deploy_vdev:13436915,,OTHER,staging,2019-03-13T15:25:15.583+00:00,,2019-03-13T15:28:32.934+00:00,197
-gitlab:GitlabDeployment:1:12345678:13436986,gitlab:GitlabProject:1:12345678,deploy_vdev:13436986,,OTHER,production,2019-03-13T15:25:46.042+00:00,2019-03-13T15:26:19.170+00:00,2019-03-13T15:26:37.468+00:00,18
+gitlab:GitlabDeployment:1:12345678:13436532,gitlab:GitlabProject:1:12345678,deploy_vdev:13436532,FAILURE,DONE,production,2019-03-13T15:21:00.302+00:00,2019-03-13T15:21:07.335+00:00,2019-03-13T15:21:27.825+00:00,20.489227
+gitlab:GitlabDeployment:1:12345678:13436763,gitlab:GitlabProject:1:12345678,deploy_vdev:13436763,,OTHER,production,2019-03-13T15:23:35.859+00:00,2019-03-13T15:23:40.064+00:00,2019-03-13T15:23:55.970+00:00,15.905676
+gitlab:GitlabDeployment:1:12345678:13436778,gitlab:GitlabProject:1:12345678,test_deploy_vdev:13436778,,IN_PROGRESS,staging,2019-03-13T15:23:52.979+00:00,,2019-03-13T15:25:41.412+00:00,108.526
+gitlab:GitlabDeployment:1:12345678:13436915,gitlab:GitlabProject:1:12345678,test_deploy_vdev:13436915,,OTHER,staging,2019-03-13T15:25:15.583+00:00,,2019-03-13T15:28:32.934+00:00,197.474
+gitlab:GitlabDeployment:1:12345678:13436986,gitlab:GitlabProject:1:12345678,deploy_vdev:13436986,,OTHER,production,2019-03-13T15:25:46.042+00:00,2019-03-13T15:26:19.170+00:00,2019-03-13T15:26:37.468+00:00,18.298368
diff --git a/backend/plugins/gitlab/e2e/snapshot_tables/cicd_pipelines.csv
b/backend/plugins/gitlab/e2e/snapshot_tables/cicd_pipelines.csv
index e2afd6ab9..299840520 100644
--- a/backend/plugins/gitlab/e2e/snapshot_tables/cicd_pipelines.csv
+++ b/backend/plugins/gitlab/e2e/snapshot_tables/cicd_pipelines.csv
@@ -1,7 +1,7 @@
id,name,result,status,type,duration_sec,environment,created_date,finished_date,cicd_scope_id
gitlab:GitlabPipeline:1:457474837,gitlab:GitlabPipeline:1:457474837,,IN_PROGRESS,,0,,2022-01-27T10:07:09.429+00:00,,gitlab:GitlabProject:1:12345678
-gitlab:GitlabPipeline:1:457474996,gitlab:GitlabPipeline:1:457474996,FAILURE,DONE,,0,,2022-01-27T10:07:18.884+00:00,2022-01-27T10:07:19.043+00:00,gitlab:GitlabProject:1:12345678
-gitlab:GitlabPipeline:1:457475160,gitlab:GitlabPipeline:1:457475160,FAILURE,DONE,,0,,2022-01-27T10:07:26.435+00:00,2022-01-27T10:07:26.638+00:00,gitlab:GitlabProject:1:12345678
+gitlab:GitlabPipeline:1:457474996,gitlab:GitlabPipeline:1:457474996,FAILURE,DONE,,0.159,,2022-01-27T10:07:18.884+00:00,2022-01-27T10:07:19.043+00:00,gitlab:GitlabProject:1:12345678
+gitlab:GitlabPipeline:1:457475160,gitlab:GitlabPipeline:1:457475160,FAILURE,DONE,,0.203,,2022-01-27T10:07:26.435+00:00,2022-01-27T10:07:26.638+00:00,gitlab:GitlabProject:1:12345678
gitlab:GitlabPipeline:1:457475337,gitlab:GitlabPipeline:1:457475337,,IN_PROGRESS,,0,,2022-01-27T10:07:36.502+00:00,,gitlab:GitlabProject:1:12345678
gitlab:GitlabPipeline:1:485811050,gitlab:GitlabPipeline:1:485811050,FAILURE,DONE,DEPLOYMENT,0,PRODUCTION,2022-03-07T06:26:42.109+00:00,2022-03-07T06:26:42.109+00:00,gitlab:GitlabProject:1:12345678
gitlab:GitlabPipeline:1:485811059,gitlab:GitlabPipeline:1:485811059,FAILURE,DONE,,0,,2022-03-07T06:26:43.784+00:00,2022-03-07T06:26:43.784+00:00,gitlab:GitlabProject:1:12345678
@@ -9,17 +9,17 @@
gitlab:GitlabPipeline:1:485813816,gitlab:GitlabPipeline:1:485813816,FAILURE,DONE
gitlab:GitlabPipeline:1:485813830,gitlab:GitlabPipeline:1:485813830,FAILURE,DONE,,0,,2022-03-07T06:33:58.889+00:00,2022-03-07T06:33:58.889+00:00,gitlab:GitlabProject:1:12345678
gitlab:GitlabPipeline:1:485814501,gitlab:GitlabPipeline:1:485814501,FAILURE,DONE,DEPLOYMENT,0,PRODUCTION,2022-03-07T06:35:28.111+00:00,2022-03-07T06:35:28.111+00:00,gitlab:GitlabProject:1:12345678
gitlab:GitlabPipeline:1:485814516,gitlab:GitlabPipeline:1:485814516,FAILURE,DONE,,0,,2022-03-07T06:35:31.255+00:00,2022-03-07T06:35:31.255+00:00,gitlab:GitlabProject:1:12345678
-gitlab:GitlabPipeline:1:485814871,gitlab:GitlabPipeline:1:485814871,FAILURE,DONE,,42,,2022-03-07T06:36:50.020+00:00,2022-03-07T06:37:32.103+00:00,gitlab:GitlabProject:1:12345678
-gitlab:GitlabPipeline:1:485817670,gitlab:GitlabPipeline:1:485817670,FAILURE,DONE,,1956,,2022-03-07T06:45:09.471+00:00,2022-03-07T07:17:46.305+00:00,gitlab:GitlabProject:1:12345678
-gitlab:GitlabPipeline:1:485837602,gitlab:GitlabPipeline:1:485837602,FAILURE,DONE,,434,,2022-03-07T07:20:45.859+00:00,2022-03-07T07:28:00.277+00:00,gitlab:GitlabProject:1:12345678
-gitlab:GitlabPipeline:1:485842553,gitlab:GitlabPipeline:1:485842553,FAILURE,DONE,,287,,2022-03-07T07:30:47.018+00:00,2022-03-07T07:35:34.998+00:00,gitlab:GitlabProject:1:12345678
-gitlab:GitlabPipeline:1:485845850,gitlab:GitlabPipeline:1:485845850,FAILURE,DONE,,419,,2022-03-07T07:38:58.611+00:00,2022-03-07T07:45:58.412+00:00,gitlab:GitlabProject:1:12345678
-gitlab:GitlabPipeline:1:485852752,gitlab:GitlabPipeline:1:485852752,FAILURE,DONE,,319,,2022-03-07T07:46:09.385+00:00,2022-03-07T07:51:28.709+00:00,gitlab:GitlabProject:1:12345678
-gitlab:GitlabPipeline:1:485865876,gitlab:GitlabPipeline:1:485865876,FAILURE,DONE,,480,,2022-03-07T08:04:56.406+00:00,2022-03-07T08:12:56.453+00:00,gitlab:GitlabProject:1:12345678
-gitlab:GitlabPipeline:1:485877118,gitlab:GitlabPipeline:1:485877118,FAILURE,DONE,,289,,2022-03-07T08:22:48.943+00:00,2022-03-07T08:27:38.364+00:00,gitlab:GitlabProject:1:12345678
-gitlab:GitlabPipeline:1:485905167,gitlab:GitlabPipeline:1:485905167,FAILURE,DONE,,687,,2022-03-07T09:02:09.994+00:00,2022-03-07T09:13:37.013+00:00,gitlab:GitlabProject:1:12345678
-gitlab:GitlabPipeline:1:485932863,gitlab:GitlabPipeline:1:485932863,SUCCESS,DONE,,398,,2022-03-07T09:34:57.476+00:00,2022-03-07T09:41:36.267+00:00,gitlab:GitlabProject:1:12345678
-gitlab:GitlabPipeline:1:485932864,gitlab:GitlabPipeline:1:485932864,FAILURE,DONE,,398,,2022-03-07T09:34:57.476+00:00,2022-03-07T09:41:36.267+00:00,gitlab:GitlabProject:1:12345678
+gitlab:GitlabPipeline:1:485814871,gitlab:GitlabPipeline:1:485814871,FAILURE,DONE,,42.083,,2022-03-07T06:36:50.020+00:00,2022-03-07T06:37:32.103+00:00,gitlab:GitlabProject:1:12345678
+gitlab:GitlabPipeline:1:485817670,gitlab:GitlabPipeline:1:485817670,FAILURE,DONE,,1956.834,,2022-03-07T06:45:09.471+00:00,2022-03-07T07:17:46.305+00:00,gitlab:GitlabProject:1:12345678
+gitlab:GitlabPipeline:1:485837602,gitlab:GitlabPipeline:1:485837602,FAILURE,DONE,,434.418,,2022-03-07T07:20:45.859+00:00,2022-03-07T07:28:00.277+00:00,gitlab:GitlabProject:1:12345678
+gitlab:GitlabPipeline:1:485842553,gitlab:GitlabPipeline:1:485842553,FAILURE,DONE,,287.98,,2022-03-07T07:30:47.018+00:00,2022-03-07T07:35:34.998+00:00,gitlab:GitlabProject:1:12345678
+gitlab:GitlabPipeline:1:485845850,gitlab:GitlabPipeline:1:485845850,FAILURE,DONE,,419.801,,2022-03-07T07:38:58.611+00:00,2022-03-07T07:45:58.412+00:00,gitlab:GitlabProject:1:12345678
+gitlab:GitlabPipeline:1:485852752,gitlab:GitlabPipeline:1:485852752,FAILURE,DONE,,319.324,,2022-03-07T07:46:09.385+00:00,2022-03-07T07:51:28.709+00:00,gitlab:GitlabProject:1:12345678
+gitlab:GitlabPipeline:1:485865876,gitlab:GitlabPipeline:1:485865876,FAILURE,DONE,,480.047,,2022-03-07T08:04:56.406+00:00,2022-03-07T08:12:56.453+00:00,gitlab:GitlabProject:1:12345678
+gitlab:GitlabPipeline:1:485877118,gitlab:GitlabPipeline:1:485877118,FAILURE,DONE,,289.421,,2022-03-07T08:22:48.943+00:00,2022-03-07T08:27:38.364+00:00,gitlab:GitlabProject:1:12345678
+gitlab:GitlabPipeline:1:485905167,gitlab:GitlabPipeline:1:485905167,FAILURE,DONE,,687.019,,2022-03-07T09:02:09.994+00:00,2022-03-07T09:13:37.013+00:00,gitlab:GitlabProject:1:12345678
+gitlab:GitlabPipeline:1:485932863,gitlab:GitlabPipeline:1:485932863,SUCCESS,DONE,,398.791,,2022-03-07T09:34:57.476+00:00,2022-03-07T09:41:36.267+00:00,gitlab:GitlabProject:1:12345678
+gitlab:GitlabPipeline:1:485932864,gitlab:GitlabPipeline:1:485932864,FAILURE,DONE,,398.791,,2022-03-07T09:34:57.476+00:00,2022-03-07T09:41:36.267+00:00,gitlab:GitlabProject:1:12345678
gitlab:GitlabPipeline:1:485932865,gitlab:GitlabPipeline:1:485932865,,OTHER,,0,,2022-03-07T09:34:57.476+00:00,,gitlab:GitlabProject:1:12345678
gitlab:GitlabPipeline:1:485932866,gitlab:GitlabPipeline:1:485932866,,IN_PROGRESS,,0,,2022-03-07T09:34:57.476+00:00,,gitlab:GitlabProject:1:12345678
gitlab:GitlabPipeline:1:485932867,gitlab:GitlabPipeline:1:485932867,,IN_PROGRESS,,0,,2022-03-07T09:34:57.476+00:00,,gitlab:GitlabProject:1:12345678
diff --git a/backend/plugins/gitlab/e2e/snapshot_tables/cicd_tasks.csv
b/backend/plugins/gitlab/e2e/snapshot_tables/cicd_tasks.csv
index 8abaed63d..e3c3499e2 100644
--- a/backend/plugins/gitlab/e2e/snapshot_tables/cicd_tasks.csv
+++ b/backend/plugins/gitlab/e2e/snapshot_tables/cicd_tasks.csv
@@ -1,25 +1,25 @@
id,name,pipeline_id,result,status,type,environment,duration_sec,started_date,finished_date,cicd_scope_id
-gitlab:GitlabJob:1:100,compile,gitlab:GitlabPipeline:1:24,SUCCESS,DONE,DEPLOYMENT,PRODUCTION,2,2022-07-25T15:06:57.051+00:00,2022-07-25T15:06:59.885+00:00,gitlab:GitlabProject:1:44
-gitlab:GitlabJob:1:101,format,gitlab:GitlabPipeline:1:25,SUCCESS,DONE,,,3,2022-07-25T15:13:37.206+00:00,2022-07-25T15:13:40.246+00:00,gitlab:GitlabProject:1:44
-gitlab:GitlabJob:1:102,format,gitlab:GitlabPipeline:1:26,SUCCESS,DONE,,,2,2022-07-25T15:30:22.560+00:00,2022-07-25T15:30:25.315+00:00,gitlab:GitlabProject:1:44
-gitlab:GitlabJob:1:103,format,gitlab:GitlabPipeline:1:27,SUCCESS,DONE,,,2,2022-07-25T15:30:55.671+00:00,2022-07-25T15:30:58.650+00:00,gitlab:GitlabProject:1:44
-gitlab:GitlabJob:1:104,format,gitlab:GitlabPipeline:1:28,SUCCESS,DONE,,,2,2022-07-25T15:32:04.954+00:00,2022-07-25T15:32:07.726+00:00,gitlab:GitlabProject:1:44
-gitlab:GitlabJob:1:105,compile,gitlab:GitlabPipeline:1:28,FAILURE,DONE,DEPLOYMENT,PRODUCTION,3,2022-07-25T15:32:07.953+00:00,2022-07-25T15:32:11.077+00:00,gitlab:GitlabProject:1:44
-gitlab:GitlabJob:1:106,format,gitlab:GitlabPipeline:1:29,SUCCESS,DONE,,,2,2022-07-25T15:33:26.382+00:00,2022-07-25T15:33:29.356+00:00,gitlab:GitlabProject:1:44
-gitlab:GitlabJob:1:107,format,gitlab:GitlabPipeline:1:30,SUCCESS,DONE,,,2,2022-07-25T15:34:23.665+00:00,2022-07-25T15:34:26.392+00:00,gitlab:GitlabProject:1:44
-gitlab:GitlabJob:1:108,format,gitlab:GitlabPipeline:1:31,SUCCESS,DONE,,,2,2022-07-25T15:35:11.707+00:00,2022-07-25T15:35:14.224+00:00,gitlab:GitlabProject:1:44
-gitlab:GitlabJob:1:109,compile,gitlab:GitlabPipeline:1:31,SUCCESS,DONE,DEPLOYMENT,PRODUCTION,3,2022-07-25T15:35:14.724+00:00,2022-07-25T15:35:17.828+00:00,gitlab:GitlabProject:1:44
-gitlab:GitlabJob:1:110,format,gitlab:GitlabPipeline:1:32,SUCCESS,DONE,,,2,2022-07-25T15:36:18.097+00:00,2022-07-25T15:36:20.954+00:00,gitlab:GitlabProject:1:44
-gitlab:GitlabJob:1:111,format,gitlab:GitlabPipeline:1:33,SUCCESS,DONE,,,3,2022-07-25T15:38:03.463+00:00,2022-07-25T15:38:06.467+00:00,gitlab:GitlabProject:1:44
-gitlab:GitlabJob:1:112,format,gitlab:GitlabPipeline:1:34,SUCCESS,DONE,,,3,2022-07-25T21:19:14.509+00:00,2022-07-25T21:19:17.811+00:00,gitlab:GitlabProject:1:44
-gitlab:GitlabJob:1:113,format,gitlab:GitlabPipeline:1:35,SUCCESS,DONE,,,5,2022-07-26T09:37:05.694+00:00,2022-07-26T09:37:10.873+00:00,gitlab:GitlabProject:1:44
-gitlab:GitlabJob:1:114,format,gitlab:GitlabPipeline:1:36,SUCCESS,DONE,,,2,2022-07-26T09:37:38.057+00:00,2022-07-26T09:37:40.975+00:00,gitlab:GitlabProject:1:44
-gitlab:GitlabJob:1:115,format,gitlab:GitlabPipeline:1:37,SUCCESS,DONE,,,3,2022-07-26T09:38:29.318+00:00,2022-07-26T09:38:32.970+00:00,gitlab:GitlabProject:1:44
-gitlab:GitlabJob:1:116,format,gitlab:GitlabPipeline:1:38,SUCCESS,DONE,,,3,2022-07-26T21:19:13.888+00:00,2022-07-26T21:19:17.021+00:00,gitlab:GitlabProject:1:44
-gitlab:GitlabJob:1:117,format,gitlab:GitlabPipeline:1:39,SUCCESS,DONE,,,3,2022-07-27T08:19:24.376+00:00,2022-07-27T08:19:28.159+00:00,gitlab:GitlabProject:1:44
-gitlab:GitlabJob:1:118,format,gitlab:GitlabPipeline:1:40,SUCCESS,DONE,,,4,2022-07-27T21:19:32.288+00:00,2022-07-27T21:19:36.850+00:00,gitlab:GitlabProject:1:44
+gitlab:GitlabJob:1:100,compile,gitlab:GitlabPipeline:1:24,SUCCESS,DONE,DEPLOYMENT,PRODUCTION,2.833629,2022-07-25T15:06:57.051+00:00,2022-07-25T15:06:59.885+00:00,gitlab:GitlabProject:1:44
+gitlab:GitlabJob:1:101,format,gitlab:GitlabPipeline:1:25,SUCCESS,DONE,,,3.039853,2022-07-25T15:13:37.206+00:00,2022-07-25T15:13:40.246+00:00,gitlab:GitlabProject:1:44
+gitlab:GitlabJob:1:102,format,gitlab:GitlabPipeline:1:26,SUCCESS,DONE,,,2.754626,2022-07-25T15:30:22.560+00:00,2022-07-25T15:30:25.315+00:00,gitlab:GitlabProject:1:44
+gitlab:GitlabJob:1:103,format,gitlab:GitlabPipeline:1:27,SUCCESS,DONE,,,2.978188,2022-07-25T15:30:55.671+00:00,2022-07-25T15:30:58.650+00:00,gitlab:GitlabProject:1:44
+gitlab:GitlabJob:1:104,format,gitlab:GitlabPipeline:1:28,SUCCESS,DONE,,,2.771923,2022-07-25T15:32:04.954+00:00,2022-07-25T15:32:07.726+00:00,gitlab:GitlabProject:1:44
+gitlab:GitlabJob:1:105,compile,gitlab:GitlabPipeline:1:28,FAILURE,DONE,DEPLOYMENT,PRODUCTION,3.124232,2022-07-25T15:32:07.953+00:00,2022-07-25T15:32:11.077+00:00,gitlab:GitlabProject:1:44
+gitlab:GitlabJob:1:106,format,gitlab:GitlabPipeline:1:29,SUCCESS,DONE,,,2.973488,2022-07-25T15:33:26.382+00:00,2022-07-25T15:33:29.356+00:00,gitlab:GitlabProject:1:44
+gitlab:GitlabJob:1:107,format,gitlab:GitlabPipeline:1:30,SUCCESS,DONE,,,2.727088,2022-07-25T15:34:23.665+00:00,2022-07-25T15:34:26.392+00:00,gitlab:GitlabProject:1:44
+gitlab:GitlabJob:1:108,format,gitlab:GitlabPipeline:1:31,SUCCESS,DONE,,,2.516951,2022-07-25T15:35:11.707+00:00,2022-07-25T15:35:14.224+00:00,gitlab:GitlabProject:1:44
+gitlab:GitlabJob:1:109,compile,gitlab:GitlabPipeline:1:31,SUCCESS,DONE,DEPLOYMENT,PRODUCTION,3.103903,2022-07-25T15:35:14.724+00:00,2022-07-25T15:35:17.828+00:00,gitlab:GitlabProject:1:44
+gitlab:GitlabJob:1:110,format,gitlab:GitlabPipeline:1:32,SUCCESS,DONE,,,2.857065,2022-07-25T15:36:18.097+00:00,2022-07-25T15:36:20.954+00:00,gitlab:GitlabProject:1:44
+gitlab:GitlabJob:1:111,format,gitlab:GitlabPipeline:1:33,SUCCESS,DONE,,,3.004112,2022-07-25T15:38:03.463+00:00,2022-07-25T15:38:06.467+00:00,gitlab:GitlabProject:1:44
+gitlab:GitlabJob:1:112,format,gitlab:GitlabPipeline:1:34,SUCCESS,DONE,,,3.302867,2022-07-25T21:19:14.509+00:00,2022-07-25T21:19:17.811+00:00,gitlab:GitlabProject:1:44
+gitlab:GitlabJob:1:113,format,gitlab:GitlabPipeline:1:35,SUCCESS,DONE,,,5.179808,2022-07-26T09:37:05.694+00:00,2022-07-26T09:37:10.873+00:00,gitlab:GitlabProject:1:44
+gitlab:GitlabJob:1:114,format,gitlab:GitlabPipeline:1:36,SUCCESS,DONE,,,2.918028,2022-07-26T09:37:38.057+00:00,2022-07-26T09:37:40.975+00:00,gitlab:GitlabProject:1:44
+gitlab:GitlabJob:1:115,format,gitlab:GitlabPipeline:1:37,SUCCESS,DONE,,,3.651621,2022-07-26T09:38:29.318+00:00,2022-07-26T09:38:32.970+00:00,gitlab:GitlabProject:1:44
+gitlab:GitlabJob:1:116,format,gitlab:GitlabPipeline:1:38,SUCCESS,DONE,,,3.13281,2022-07-26T21:19:13.888+00:00,2022-07-26T21:19:17.021+00:00,gitlab:GitlabProject:1:44
+gitlab:GitlabJob:1:117,format,gitlab:GitlabPipeline:1:39,SUCCESS,DONE,,,3.783425,2022-07-27T08:19:24.376+00:00,2022-07-27T08:19:28.159+00:00,gitlab:GitlabProject:1:44
+gitlab:GitlabJob:1:118,format,gitlab:GitlabPipeline:1:40,SUCCESS,DONE,,,4.562247,2022-07-27T21:19:32.288+00:00,2022-07-27T21:19:36.850+00:00,gitlab:GitlabProject:1:44
gitlab:GitlabJob:1:119,format,gitlab:GitlabPipeline:1:41,FAILURE,DONE,,,0,2022-07-28T21:19:24.257+00:00,2022-07-28T23:00:17.842+00:00,gitlab:GitlabProject:1:44
-gitlab:GitlabJob:1:120,format,gitlab:GitlabPipeline:1:41,SUCCESS,DONE,,,56,2022-07-29T02:10:58.370+00:00,2022-07-29T02:11:55.170+00:00,gitlab:GitlabProject:1:44
+gitlab:GitlabJob:1:120,format,gitlab:GitlabPipeline:1:41,SUCCESS,DONE,,,56.799878,2022-07-29T02:10:58.370+00:00,2022-07-29T02:11:55.170+00:00,gitlab:GitlabProject:1:44
gitlab:GitlabJob:1:121,format,gitlab:GitlabPipeline:1:42,FAILURE,DONE,,,0,2022-07-29T21:19:02.884+00:00,2022-07-29T23:00:24.840+00:00,gitlab:GitlabProject:1:44
gitlab:GitlabJob:1:122,format,gitlab:GitlabPipeline:1:43,FAILURE,DONE,,,0,2022-07-30T21:19:26.310+00:00,2022-07-30T23:00:25.126+00:00,gitlab:GitlabProject:1:44
gitlab:GitlabJob:1:123,format,gitlab:GitlabPipeline:1:44,FAILURE,DONE,,,0,2022-07-31T21:19:05.348+00:00,2022-07-31T23:00:29.135+00:00,gitlab:GitlabProject:1:44
@@ -52,25 +52,25 @@
gitlab:GitlabJob:1:149,format,gitlab:GitlabPipeline:1:70,FAILURE,DONE,,,0,2022-0
gitlab:GitlabJob:1:150,format,gitlab:GitlabPipeline:1:71,FAILURE,DONE,,,0,2022-08-24T08:19:19.653+00:00,2022-08-24T10:00:04.660+00:00,gitlab:GitlabProject:1:44
gitlab:GitlabJob:1:151,format,gitlab:GitlabPipeline:1:72,FAILURE,DONE,,,0,2022-08-24T21:19:29.226+00:00,2022-08-24T23:00:14.036+00:00,gitlab:GitlabProject:1:44
gitlab:GitlabJob:1:152,format,gitlab:GitlabPipeline:1:73,FAILURE,DONE,,,0,2022-08-25T21:19:10.938+00:00,2022-08-25T23:00:08.594+00:00,gitlab:GitlabProject:1:44
-gitlab:GitlabJob:1:60,format,gitlab:GitlabPipeline:1:16,,OTHER,,,0,2022-07-25T13:40:42.020+00:00,2022-07-25T13:40:42.892+00:00,gitlab:GitlabProject:1:44
-gitlab:GitlabJob:1:61,format,gitlab:GitlabPipeline:1:16,,IN_PROGRESS,,,0,2022-07-25T13:40:42.020+00:00,2022-07-25T13:40:42.892+00:00,gitlab:GitlabProject:1:44
-gitlab:GitlabJob:1:62,format,gitlab:GitlabPipeline:1:16,,IN_PROGRESS,,,0,2022-07-25T13:40:42.020+00:00,2022-07-25T13:40:42.892+00:00,gitlab:GitlabProject:1:44
-gitlab:GitlabJob:1:63,format,gitlab:GitlabPipeline:1:16,,IN_PROGRESS,,,0,2022-07-25T13:40:42.020+00:00,2022-07-25T13:40:42.892+00:00,gitlab:GitlabProject:1:44
-gitlab:GitlabJob:1:64,format,gitlab:GitlabPipeline:1:16,,IN_PROGRESS,,,0,2022-07-25T13:40:42.020+00:00,2022-07-25T13:40:42.892+00:00,gitlab:GitlabProject:1:44
-gitlab:GitlabJob:1:65,format,gitlab:GitlabPipeline:1:16,,OTHER,,,0,2022-07-25T13:40:42.020+00:00,2022-07-25T13:40:42.892+00:00,gitlab:GitlabProject:1:44
-gitlab:GitlabJob:1:66,format,gitlab:GitlabPipeline:1:16,,OTHER,,,0,2022-07-25T13:40:42.020+00:00,2022-07-25T13:40:42.892+00:00,gitlab:GitlabProject:1:44
-gitlab:GitlabJob:1:67,format,gitlab:GitlabPipeline:1:16,,OTHER,,,0,2022-07-25T13:40:42.020+00:00,2022-07-25T13:40:42.892+00:00,gitlab:GitlabProject:1:44
-gitlab:GitlabJob:1:86,format,gitlab:GitlabPipeline:1:16,FAILURE,DONE,,,0,2022-07-25T13:40:42.020+00:00,2022-07-25T13:40:42.892+00:00,gitlab:GitlabProject:1:44
-gitlab:GitlabJob:1:87,format,gitlab:GitlabPipeline:1:16,FAILURE,DONE,,,0,2022-07-25T13:41:11.601+00:00,2022-07-25T13:41:11.932+00:00,gitlab:GitlabProject:1:44
-gitlab:GitlabJob:1:88,format,gitlab:GitlabPipeline:1:17,FAILURE,DONE,,,0,2022-07-25T13:42:59.674+00:00,2022-07-25T13:42:59.998+00:00,gitlab:GitlabProject:1:44
+gitlab:GitlabJob:1:60,format,gitlab:GitlabPipeline:1:16,,OTHER,,,0.871577,2022-07-25T13:40:42.020+00:00,2022-07-25T13:40:42.892+00:00,gitlab:GitlabProject:1:44
+gitlab:GitlabJob:1:61,format,gitlab:GitlabPipeline:1:16,,IN_PROGRESS,,,0.871577,2022-07-25T13:40:42.020+00:00,2022-07-25T13:40:42.892+00:00,gitlab:GitlabProject:1:44
+gitlab:GitlabJob:1:62,format,gitlab:GitlabPipeline:1:16,,IN_PROGRESS,,,0.871577,2022-07-25T13:40:42.020+00:00,2022-07-25T13:40:42.892+00:00,gitlab:GitlabProject:1:44
+gitlab:GitlabJob:1:63,format,gitlab:GitlabPipeline:1:16,,IN_PROGRESS,,,0.871577,2022-07-25T13:40:42.020+00:00,2022-07-25T13:40:42.892+00:00,gitlab:GitlabProject:1:44
+gitlab:GitlabJob:1:64,format,gitlab:GitlabPipeline:1:16,,IN_PROGRESS,,,0.871577,2022-07-25T13:40:42.020+00:00,2022-07-25T13:40:42.892+00:00,gitlab:GitlabProject:1:44
+gitlab:GitlabJob:1:65,format,gitlab:GitlabPipeline:1:16,,OTHER,,,0.871577,2022-07-25T13:40:42.020+00:00,2022-07-25T13:40:42.892+00:00,gitlab:GitlabProject:1:44
+gitlab:GitlabJob:1:66,format,gitlab:GitlabPipeline:1:16,,OTHER,,,0.871577,2022-07-25T13:40:42.020+00:00,2022-07-25T13:40:42.892+00:00,gitlab:GitlabProject:1:44
+gitlab:GitlabJob:1:67,format,gitlab:GitlabPipeline:1:16,,OTHER,,,0.871577,2022-07-25T13:40:42.020+00:00,2022-07-25T13:40:42.892+00:00,gitlab:GitlabProject:1:44
+gitlab:GitlabJob:1:86,format,gitlab:GitlabPipeline:1:16,FAILURE,DONE,,,0.871577,2022-07-25T13:40:42.020+00:00,2022-07-25T13:40:42.892+00:00,gitlab:GitlabProject:1:44
+gitlab:GitlabJob:1:87,format,gitlab:GitlabPipeline:1:16,FAILURE,DONE,,,0.331067,2022-07-25T13:41:11.601+00:00,2022-07-25T13:41:11.932+00:00,gitlab:GitlabProject:1:44
+gitlab:GitlabJob:1:88,format,gitlab:GitlabPipeline:1:17,FAILURE,DONE,,,0.324175,2022-07-25T13:42:59.674+00:00,2022-07-25T13:42:59.998+00:00,gitlab:GitlabProject:1:44
gitlab:GitlabJob:1:89,format,gitlab:GitlabPipeline:1:17,FAILURE,OTHER,,,0,2022-07-25T13:46:15.482+00:00,2022-07-25T13:49:42.952+00:00,gitlab:GitlabProject:1:44
gitlab:GitlabJob:1:90,format,gitlab:GitlabPipeline:1:18,FAILURE,OTHER,,,0,2022-07-25T13:50:40.680+00:00,2022-07-25T14:19:03.023+00:00,gitlab:GitlabProject:1:44
-gitlab:GitlabJob:1:91,format,gitlab:GitlabPipeline:1:18,FAILURE,DONE,,,2,2022-07-25T14:26:02.616+00:00,2022-07-25T14:26:05.480+00:00,gitlab:GitlabProject:1:44
-gitlab:GitlabJob:1:92,format,gitlab:GitlabPipeline:1:18,FAILURE,DONE,,,1,2022-07-25T14:47:12.876+00:00,2022-07-25T14:47:14.295+00:00,gitlab:GitlabProject:1:44
-gitlab:GitlabJob:1:93,format,gitlab:GitlabPipeline:1:19,FAILURE,DONE,,,1,2022-07-25T14:53:56.227+00:00,2022-07-25T14:53:57.910+00:00,gitlab:GitlabProject:1:44
-gitlab:GitlabJob:1:94,format,gitlab:GitlabPipeline:1:20,FAILURE,DONE,,,1,2022-07-25T14:55:26.493+00:00,2022-07-25T14:55:28.331+00:00,gitlab:GitlabProject:1:44
-gitlab:GitlabJob:1:95,format,gitlab:GitlabPipeline:1:21,FAILURE,DONE,,,1,2022-07-25T14:56:59.811+00:00,2022-07-25T14:57:01.498+00:00,gitlab:GitlabProject:1:44
-gitlab:GitlabJob:1:96,format,gitlab:GitlabPipeline:1:21,FAILURE,DONE,,,5,2022-07-25T14:59:29.276+00:00,2022-07-25T14:59:34.282+00:00,gitlab:GitlabProject:1:44
-gitlab:GitlabJob:1:97,format,gitlab:GitlabPipeline:1:22,SUCCESS,DONE,,,3,2022-07-25T15:00:43.749+00:00,2022-07-25T15:00:46.895+00:00,gitlab:GitlabProject:1:44
-gitlab:GitlabJob:1:98,format,gitlab:GitlabPipeline:1:23,SUCCESS,DONE,,,2,2022-07-25T15:03:23.471+00:00,2022-07-25T15:03:26.432+00:00,gitlab:GitlabProject:1:44
-gitlab:GitlabJob:1:99,format,gitlab:GitlabPipeline:1:24,SUCCESS,DONE,,,2,2022-07-25T15:06:54.037+00:00,2022-07-25T15:06:56.819+00:00,gitlab:GitlabProject:1:44
+gitlab:GitlabJob:1:91,format,gitlab:GitlabPipeline:1:18,FAILURE,DONE,,,2.864332,2022-07-25T14:26:02.616+00:00,2022-07-25T14:26:05.480+00:00,gitlab:GitlabProject:1:44
+gitlab:GitlabJob:1:92,format,gitlab:GitlabPipeline:1:18,FAILURE,DONE,,,1.419497,2022-07-25T14:47:12.876+00:00,2022-07-25T14:47:14.295+00:00,gitlab:GitlabProject:1:44
+gitlab:GitlabJob:1:93,format,gitlab:GitlabPipeline:1:19,FAILURE,DONE,,,1.682669,2022-07-25T14:53:56.227+00:00,2022-07-25T14:53:57.910+00:00,gitlab:GitlabProject:1:44
+gitlab:GitlabJob:1:94,format,gitlab:GitlabPipeline:1:20,FAILURE,DONE,,,1.837993,2022-07-25T14:55:26.493+00:00,2022-07-25T14:55:28.331+00:00,gitlab:GitlabProject:1:44
+gitlab:GitlabJob:1:95,format,gitlab:GitlabPipeline:1:21,FAILURE,DONE,,,1.68669,2022-07-25T14:56:59.811+00:00,2022-07-25T14:57:01.498+00:00,gitlab:GitlabProject:1:44
+gitlab:GitlabJob:1:96,format,gitlab:GitlabPipeline:1:21,FAILURE,DONE,,,5.006028,2022-07-25T14:59:29.276+00:00,2022-07-25T14:59:34.282+00:00,gitlab:GitlabProject:1:44
+gitlab:GitlabJob:1:97,format,gitlab:GitlabPipeline:1:22,SUCCESS,DONE,,,3.146301,2022-07-25T15:00:43.749+00:00,2022-07-25T15:00:46.895+00:00,gitlab:GitlabProject:1:44
+gitlab:GitlabJob:1:98,format,gitlab:GitlabPipeline:1:23,SUCCESS,DONE,,,2.960982,2022-07-25T15:03:23.471+00:00,2022-07-25T15:03:26.432+00:00,gitlab:GitlabProject:1:44
+gitlab:GitlabJob:1:99,format,gitlab:GitlabPipeline:1:24,SUCCESS,DONE,,,2.781517,2022-07-25T15:06:54.037+00:00,2022-07-25T15:06:56.819+00:00,gitlab:GitlabProject:1:44
diff --git
a/backend/plugins/gitlab/e2e/snapshot_tables/cicd_tasks_no_prod_regex.csv
b/backend/plugins/gitlab/e2e/snapshot_tables/cicd_tasks_no_prod_regex.csv
index c00e525f2..2009e6d5c 100644
--- a/backend/plugins/gitlab/e2e/snapshot_tables/cicd_tasks_no_prod_regex.csv
+++ b/backend/plugins/gitlab/e2e/snapshot_tables/cicd_tasks_no_prod_regex.csv
@@ -1,25 +1,25 @@
id,name,pipeline_id,result,status,type,environment,duration_sec,started_date,finished_date,cicd_scope_id
-gitlab:GitlabJob:1:100,compile,gitlab:GitlabPipeline:1:24,SUCCESS,DONE,DEPLOYMENT,PRODUCTION,2,2022-07-25T15:06:57.051+00:00,2022-07-25T15:06:59.885+00:00,gitlab:GitlabProject:1:44
-gitlab:GitlabJob:1:101,format,gitlab:GitlabPipeline:1:25,SUCCESS,DONE,,PRODUCTION,3,2022-07-25T15:13:37.206+00:00,2022-07-25T15:13:40.246+00:00,gitlab:GitlabProject:1:44
-gitlab:GitlabJob:1:102,format,gitlab:GitlabPipeline:1:26,SUCCESS,DONE,,PRODUCTION,2,2022-07-25T15:30:22.560+00:00,2022-07-25T15:30:25.315+00:00,gitlab:GitlabProject:1:44
-gitlab:GitlabJob:1:103,format,gitlab:GitlabPipeline:1:27,SUCCESS,DONE,,PRODUCTION,2,2022-07-25T15:30:55.671+00:00,2022-07-25T15:30:58.650+00:00,gitlab:GitlabProject:1:44
-gitlab:GitlabJob:1:104,format,gitlab:GitlabPipeline:1:28,SUCCESS,DONE,,PRODUCTION,2,2022-07-25T15:32:04.954+00:00,2022-07-25T15:32:07.726+00:00,gitlab:GitlabProject:1:44
-gitlab:GitlabJob:1:105,compile,gitlab:GitlabPipeline:1:28,FAILURE,DONE,DEPLOYMENT,PRODUCTION,3,2022-07-25T15:32:07.953+00:00,2022-07-25T15:32:11.077+00:00,gitlab:GitlabProject:1:44
-gitlab:GitlabJob:1:106,format,gitlab:GitlabPipeline:1:29,SUCCESS,DONE,,PRODUCTION,2,2022-07-25T15:33:26.382+00:00,2022-07-25T15:33:29.356+00:00,gitlab:GitlabProject:1:44
-gitlab:GitlabJob:1:107,format,gitlab:GitlabPipeline:1:30,SUCCESS,DONE,,PRODUCTION,2,2022-07-25T15:34:23.665+00:00,2022-07-25T15:34:26.392+00:00,gitlab:GitlabProject:1:44
-gitlab:GitlabJob:1:108,format,gitlab:GitlabPipeline:1:31,SUCCESS,DONE,,PRODUCTION,2,2022-07-25T15:35:11.707+00:00,2022-07-25T15:35:14.224+00:00,gitlab:GitlabProject:1:44
-gitlab:GitlabJob:1:109,compile,gitlab:GitlabPipeline:1:31,SUCCESS,DONE,DEPLOYMENT,PRODUCTION,3,2022-07-25T15:35:14.724+00:00,2022-07-25T15:35:17.828+00:00,gitlab:GitlabProject:1:44
-gitlab:GitlabJob:1:110,format,gitlab:GitlabPipeline:1:32,SUCCESS,DONE,,PRODUCTION,2,2022-07-25T15:36:18.097+00:00,2022-07-25T15:36:20.954+00:00,gitlab:GitlabProject:1:44
-gitlab:GitlabJob:1:111,format,gitlab:GitlabPipeline:1:33,SUCCESS,DONE,,PRODUCTION,3,2022-07-25T15:38:03.463+00:00,2022-07-25T15:38:06.467+00:00,gitlab:GitlabProject:1:44
-gitlab:GitlabJob:1:112,format,gitlab:GitlabPipeline:1:34,SUCCESS,DONE,,PRODUCTION,3,2022-07-25T21:19:14.509+00:00,2022-07-25T21:19:17.811+00:00,gitlab:GitlabProject:1:44
-gitlab:GitlabJob:1:113,format,gitlab:GitlabPipeline:1:35,SUCCESS,DONE,,PRODUCTION,5,2022-07-26T09:37:05.694+00:00,2022-07-26T09:37:10.873+00:00,gitlab:GitlabProject:1:44
-gitlab:GitlabJob:1:114,format,gitlab:GitlabPipeline:1:36,SUCCESS,DONE,,PRODUCTION,2,2022-07-26T09:37:38.057+00:00,2022-07-26T09:37:40.975+00:00,gitlab:GitlabProject:1:44
-gitlab:GitlabJob:1:115,format,gitlab:GitlabPipeline:1:37,SUCCESS,DONE,,PRODUCTION,3,2022-07-26T09:38:29.318+00:00,2022-07-26T09:38:32.970+00:00,gitlab:GitlabProject:1:44
-gitlab:GitlabJob:1:116,format,gitlab:GitlabPipeline:1:38,SUCCESS,DONE,,PRODUCTION,3,2022-07-26T21:19:13.888+00:00,2022-07-26T21:19:17.021+00:00,gitlab:GitlabProject:1:44
-gitlab:GitlabJob:1:117,format,gitlab:GitlabPipeline:1:39,SUCCESS,DONE,,PRODUCTION,3,2022-07-27T08:19:24.376+00:00,2022-07-27T08:19:28.159+00:00,gitlab:GitlabProject:1:44
-gitlab:GitlabJob:1:118,format,gitlab:GitlabPipeline:1:40,SUCCESS,DONE,,PRODUCTION,4,2022-07-27T21:19:32.288+00:00,2022-07-27T21:19:36.850+00:00,gitlab:GitlabProject:1:44
+gitlab:GitlabJob:1:100,compile,gitlab:GitlabPipeline:1:24,SUCCESS,DONE,DEPLOYMENT,PRODUCTION,2.833629,2022-07-25T15:06:57.051+00:00,2022-07-25T15:06:59.885+00:00,gitlab:GitlabProject:1:44
+gitlab:GitlabJob:1:101,format,gitlab:GitlabPipeline:1:25,SUCCESS,DONE,,PRODUCTION,3.039853,2022-07-25T15:13:37.206+00:00,2022-07-25T15:13:40.246+00:00,gitlab:GitlabProject:1:44
+gitlab:GitlabJob:1:102,format,gitlab:GitlabPipeline:1:26,SUCCESS,DONE,,PRODUCTION,2.754626,2022-07-25T15:30:22.560+00:00,2022-07-25T15:30:25.315+00:00,gitlab:GitlabProject:1:44
+gitlab:GitlabJob:1:103,format,gitlab:GitlabPipeline:1:27,SUCCESS,DONE,,PRODUCTION,2.978188,2022-07-25T15:30:55.671+00:00,2022-07-25T15:30:58.650+00:00,gitlab:GitlabProject:1:44
+gitlab:GitlabJob:1:104,format,gitlab:GitlabPipeline:1:28,SUCCESS,DONE,,PRODUCTION,2.771923,2022-07-25T15:32:04.954+00:00,2022-07-25T15:32:07.726+00:00,gitlab:GitlabProject:1:44
+gitlab:GitlabJob:1:105,compile,gitlab:GitlabPipeline:1:28,FAILURE,DONE,DEPLOYMENT,PRODUCTION,3.124232,2022-07-25T15:32:07.953+00:00,2022-07-25T15:32:11.077+00:00,gitlab:GitlabProject:1:44
+gitlab:GitlabJob:1:106,format,gitlab:GitlabPipeline:1:29,SUCCESS,DONE,,PRODUCTION,2.973488,2022-07-25T15:33:26.382+00:00,2022-07-25T15:33:29.356+00:00,gitlab:GitlabProject:1:44
+gitlab:GitlabJob:1:107,format,gitlab:GitlabPipeline:1:30,SUCCESS,DONE,,PRODUCTION,2.727088,2022-07-25T15:34:23.665+00:00,2022-07-25T15:34:26.392+00:00,gitlab:GitlabProject:1:44
+gitlab:GitlabJob:1:108,format,gitlab:GitlabPipeline:1:31,SUCCESS,DONE,,PRODUCTION,2.516951,2022-07-25T15:35:11.707+00:00,2022-07-25T15:35:14.224+00:00,gitlab:GitlabProject:1:44
+gitlab:GitlabJob:1:109,compile,gitlab:GitlabPipeline:1:31,SUCCESS,DONE,DEPLOYMENT,PRODUCTION,3.103903,2022-07-25T15:35:14.724+00:00,2022-07-25T15:35:17.828+00:00,gitlab:GitlabProject:1:44
+gitlab:GitlabJob:1:110,format,gitlab:GitlabPipeline:1:32,SUCCESS,DONE,,PRODUCTION,2.857065,2022-07-25T15:36:18.097+00:00,2022-07-25T15:36:20.954+00:00,gitlab:GitlabProject:1:44
+gitlab:GitlabJob:1:111,format,gitlab:GitlabPipeline:1:33,SUCCESS,DONE,,PRODUCTION,3.004112,2022-07-25T15:38:03.463+00:00,2022-07-25T15:38:06.467+00:00,gitlab:GitlabProject:1:44
+gitlab:GitlabJob:1:112,format,gitlab:GitlabPipeline:1:34,SUCCESS,DONE,,PRODUCTION,3.302867,2022-07-25T21:19:14.509+00:00,2022-07-25T21:19:17.811+00:00,gitlab:GitlabProject:1:44
+gitlab:GitlabJob:1:113,format,gitlab:GitlabPipeline:1:35,SUCCESS,DONE,,PRODUCTION,5.179808,2022-07-26T09:37:05.694+00:00,2022-07-26T09:37:10.873+00:00,gitlab:GitlabProject:1:44
+gitlab:GitlabJob:1:114,format,gitlab:GitlabPipeline:1:36,SUCCESS,DONE,,PRODUCTION,2.918028,2022-07-26T09:37:38.057+00:00,2022-07-26T09:37:40.975+00:00,gitlab:GitlabProject:1:44
+gitlab:GitlabJob:1:115,format,gitlab:GitlabPipeline:1:37,SUCCESS,DONE,,PRODUCTION,3.651621,2022-07-26T09:38:29.318+00:00,2022-07-26T09:38:32.970+00:00,gitlab:GitlabProject:1:44
+gitlab:GitlabJob:1:116,format,gitlab:GitlabPipeline:1:38,SUCCESS,DONE,,PRODUCTION,3.13281,2022-07-26T21:19:13.888+00:00,2022-07-26T21:19:17.021+00:00,gitlab:GitlabProject:1:44
+gitlab:GitlabJob:1:117,format,gitlab:GitlabPipeline:1:39,SUCCESS,DONE,,PRODUCTION,3.783425,2022-07-27T08:19:24.376+00:00,2022-07-27T08:19:28.159+00:00,gitlab:GitlabProject:1:44
+gitlab:GitlabJob:1:118,format,gitlab:GitlabPipeline:1:40,SUCCESS,DONE,,PRODUCTION,4.562247,2022-07-27T21:19:32.288+00:00,2022-07-27T21:19:36.850+00:00,gitlab:GitlabProject:1:44
gitlab:GitlabJob:1:119,format,gitlab:GitlabPipeline:1:41,FAILURE,DONE,,PRODUCTION,0,2022-07-28T21:19:24.257+00:00,2022-07-28T23:00:17.842+00:00,gitlab:GitlabProject:1:44
-gitlab:GitlabJob:1:120,format,gitlab:GitlabPipeline:1:41,SUCCESS,DONE,,PRODUCTION,56,2022-07-29T02:10:58.370+00:00,2022-07-29T02:11:55.170+00:00,gitlab:GitlabProject:1:44
+gitlab:GitlabJob:1:120,format,gitlab:GitlabPipeline:1:41,SUCCESS,DONE,,PRODUCTION,56.799878,2022-07-29T02:10:58.370+00:00,2022-07-29T02:11:55.170+00:00,gitlab:GitlabProject:1:44
gitlab:GitlabJob:1:121,format,gitlab:GitlabPipeline:1:42,FAILURE,DONE,,PRODUCTION,0,2022-07-29T21:19:02.884+00:00,2022-07-29T23:00:24.840+00:00,gitlab:GitlabProject:1:44
gitlab:GitlabJob:1:122,format,gitlab:GitlabPipeline:1:43,FAILURE,DONE,,PRODUCTION,0,2022-07-30T21:19:26.310+00:00,2022-07-30T23:00:25.126+00:00,gitlab:GitlabProject:1:44
gitlab:GitlabJob:1:123,format,gitlab:GitlabPipeline:1:44,FAILURE,DONE,,PRODUCTION,0,2022-07-31T21:19:05.348+00:00,2022-07-31T23:00:29.135+00:00,gitlab:GitlabProject:1:44
@@ -52,25 +52,25 @@
gitlab:GitlabJob:1:149,format,gitlab:GitlabPipeline:1:70,FAILURE,DONE,,PRODUCTIO
gitlab:GitlabJob:1:150,format,gitlab:GitlabPipeline:1:71,FAILURE,DONE,,PRODUCTION,0,2022-08-24T08:19:19.653+00:00,2022-08-24T10:00:04.660+00:00,gitlab:GitlabProject:1:44
gitlab:GitlabJob:1:151,format,gitlab:GitlabPipeline:1:72,FAILURE,DONE,,PRODUCTION,0,2022-08-24T21:19:29.226+00:00,2022-08-24T23:00:14.036+00:00,gitlab:GitlabProject:1:44
gitlab:GitlabJob:1:152,format,gitlab:GitlabPipeline:1:73,FAILURE,DONE,,PRODUCTION,0,2022-08-25T21:19:10.938+00:00,2022-08-25T23:00:08.594+00:00,gitlab:GitlabProject:1:44
-gitlab:GitlabJob:1:60,format,gitlab:GitlabPipeline:1:16,,OTHER,,PRODUCTION,0,2022-07-25T13:40:42.020+00:00,2022-07-25T13:40:42.892+00:00,gitlab:GitlabProject:1:44
-gitlab:GitlabJob:1:61,format,gitlab:GitlabPipeline:1:16,,IN_PROGRESS,,PRODUCTION,0,2022-07-25T13:40:42.020+00:00,2022-07-25T13:40:42.892+00:00,gitlab:GitlabProject:1:44
-gitlab:GitlabJob:1:62,format,gitlab:GitlabPipeline:1:16,,IN_PROGRESS,,PRODUCTION,0,2022-07-25T13:40:42.020+00:00,2022-07-25T13:40:42.892+00:00,gitlab:GitlabProject:1:44
-gitlab:GitlabJob:1:63,format,gitlab:GitlabPipeline:1:16,,IN_PROGRESS,,PRODUCTION,0,2022-07-25T13:40:42.020+00:00,2022-07-25T13:40:42.892+00:00,gitlab:GitlabProject:1:44
-gitlab:GitlabJob:1:64,format,gitlab:GitlabPipeline:1:16,,IN_PROGRESS,,PRODUCTION,0,2022-07-25T13:40:42.020+00:00,2022-07-25T13:40:42.892+00:00,gitlab:GitlabProject:1:44
-gitlab:GitlabJob:1:65,format,gitlab:GitlabPipeline:1:16,,OTHER,,PRODUCTION,0,2022-07-25T13:40:42.020+00:00,2022-07-25T13:40:42.892+00:00,gitlab:GitlabProject:1:44
-gitlab:GitlabJob:1:66,format,gitlab:GitlabPipeline:1:16,,OTHER,,PRODUCTION,0,2022-07-25T13:40:42.020+00:00,2022-07-25T13:40:42.892+00:00,gitlab:GitlabProject:1:44
-gitlab:GitlabJob:1:67,format,gitlab:GitlabPipeline:1:16,,OTHER,,PRODUCTION,0,2022-07-25T13:40:42.020+00:00,2022-07-25T13:40:42.892+00:00,gitlab:GitlabProject:1:44
-gitlab:GitlabJob:1:86,format,gitlab:GitlabPipeline:1:16,FAILURE,DONE,,PRODUCTION,0,2022-07-25T13:40:42.020+00:00,2022-07-25T13:40:42.892+00:00,gitlab:GitlabProject:1:44
-gitlab:GitlabJob:1:87,format,gitlab:GitlabPipeline:1:16,FAILURE,DONE,,PRODUCTION,0,2022-07-25T13:41:11.601+00:00,2022-07-25T13:41:11.932+00:00,gitlab:GitlabProject:1:44
-gitlab:GitlabJob:1:88,format,gitlab:GitlabPipeline:1:17,FAILURE,DONE,,PRODUCTION,0,2022-07-25T13:42:59.674+00:00,2022-07-25T13:42:59.998+00:00,gitlab:GitlabProject:1:44
+gitlab:GitlabJob:1:60,format,gitlab:GitlabPipeline:1:16,,OTHER,,PRODUCTION,0.871577,2022-07-25T13:40:42.020+00:00,2022-07-25T13:40:42.892+00:00,gitlab:GitlabProject:1:44
+gitlab:GitlabJob:1:61,format,gitlab:GitlabPipeline:1:16,,IN_PROGRESS,,PRODUCTION,0.871577,2022-07-25T13:40:42.020+00:00,2022-07-25T13:40:42.892+00:00,gitlab:GitlabProject:1:44
+gitlab:GitlabJob:1:62,format,gitlab:GitlabPipeline:1:16,,IN_PROGRESS,,PRODUCTION,0.871577,2022-07-25T13:40:42.020+00:00,2022-07-25T13:40:42.892+00:00,gitlab:GitlabProject:1:44
+gitlab:GitlabJob:1:63,format,gitlab:GitlabPipeline:1:16,,IN_PROGRESS,,PRODUCTION,0.871577,2022-07-25T13:40:42.020+00:00,2022-07-25T13:40:42.892+00:00,gitlab:GitlabProject:1:44
+gitlab:GitlabJob:1:64,format,gitlab:GitlabPipeline:1:16,,IN_PROGRESS,,PRODUCTION,0.871577,2022-07-25T13:40:42.020+00:00,2022-07-25T13:40:42.892+00:00,gitlab:GitlabProject:1:44
+gitlab:GitlabJob:1:65,format,gitlab:GitlabPipeline:1:16,,OTHER,,PRODUCTION,0.871577,2022-07-25T13:40:42.020+00:00,2022-07-25T13:40:42.892+00:00,gitlab:GitlabProject:1:44
+gitlab:GitlabJob:1:66,format,gitlab:GitlabPipeline:1:16,,OTHER,,PRODUCTION,0.871577,2022-07-25T13:40:42.020+00:00,2022-07-25T13:40:42.892+00:00,gitlab:GitlabProject:1:44
+gitlab:GitlabJob:1:67,format,gitlab:GitlabPipeline:1:16,,OTHER,,PRODUCTION,0.871577,2022-07-25T13:40:42.020+00:00,2022-07-25T13:40:42.892+00:00,gitlab:GitlabProject:1:44
+gitlab:GitlabJob:1:86,format,gitlab:GitlabPipeline:1:16,FAILURE,DONE,,PRODUCTION,0.871577,2022-07-25T13:40:42.020+00:00,2022-07-25T13:40:42.892+00:00,gitlab:GitlabProject:1:44
+gitlab:GitlabJob:1:87,format,gitlab:GitlabPipeline:1:16,FAILURE,DONE,,PRODUCTION,0.331067,2022-07-25T13:41:11.601+00:00,2022-07-25T13:41:11.932+00:00,gitlab:GitlabProject:1:44
+gitlab:GitlabJob:1:88,format,gitlab:GitlabPipeline:1:17,FAILURE,DONE,,PRODUCTION,0.324175,2022-07-25T13:42:59.674+00:00,2022-07-25T13:42:59.998+00:00,gitlab:GitlabProject:1:44
gitlab:GitlabJob:1:89,format,gitlab:GitlabPipeline:1:17,FAILURE,OTHER,,PRODUCTION,0,2022-07-25T13:46:15.482+00:00,2022-07-25T13:49:42.952+00:00,gitlab:GitlabProject:1:44
gitlab:GitlabJob:1:90,format,gitlab:GitlabPipeline:1:18,FAILURE,OTHER,,PRODUCTION,0,2022-07-25T13:50:40.680+00:00,2022-07-25T14:19:03.023+00:00,gitlab:GitlabProject:1:44
-gitlab:GitlabJob:1:91,format,gitlab:GitlabPipeline:1:18,FAILURE,DONE,,PRODUCTION,2,2022-07-25T14:26:02.616+00:00,2022-07-25T14:26:05.480+00:00,gitlab:GitlabProject:1:44
-gitlab:GitlabJob:1:92,format,gitlab:GitlabPipeline:1:18,FAILURE,DONE,,PRODUCTION,1,2022-07-25T14:47:12.876+00:00,2022-07-25T14:47:14.295+00:00,gitlab:GitlabProject:1:44
-gitlab:GitlabJob:1:93,format,gitlab:GitlabPipeline:1:19,FAILURE,DONE,,PRODUCTION,1,2022-07-25T14:53:56.227+00:00,2022-07-25T14:53:57.910+00:00,gitlab:GitlabProject:1:44
-gitlab:GitlabJob:1:94,format,gitlab:GitlabPipeline:1:20,FAILURE,DONE,,PRODUCTION,1,2022-07-25T14:55:26.493+00:00,2022-07-25T14:55:28.331+00:00,gitlab:GitlabProject:1:44
-gitlab:GitlabJob:1:95,format,gitlab:GitlabPipeline:1:21,FAILURE,DONE,,PRODUCTION,1,2022-07-25T14:56:59.811+00:00,2022-07-25T14:57:01.498+00:00,gitlab:GitlabProject:1:44
-gitlab:GitlabJob:1:96,format,gitlab:GitlabPipeline:1:21,FAILURE,DONE,,PRODUCTION,5,2022-07-25T14:59:29.276+00:00,2022-07-25T14:59:34.282+00:00,gitlab:GitlabProject:1:44
-gitlab:GitlabJob:1:97,format,gitlab:GitlabPipeline:1:22,SUCCESS,DONE,,PRODUCTION,3,2022-07-25T15:00:43.749+00:00,2022-07-25T15:00:46.895+00:00,gitlab:GitlabProject:1:44
-gitlab:GitlabJob:1:98,format,gitlab:GitlabPipeline:1:23,SUCCESS,DONE,,PRODUCTION,2,2022-07-25T15:03:23.471+00:00,2022-07-25T15:03:26.432+00:00,gitlab:GitlabProject:1:44
-gitlab:GitlabJob:1:99,format,gitlab:GitlabPipeline:1:24,SUCCESS,DONE,,PRODUCTION,2,2022-07-25T15:06:54.037+00:00,2022-07-25T15:06:56.819+00:00,gitlab:GitlabProject:1:44
+gitlab:GitlabJob:1:91,format,gitlab:GitlabPipeline:1:18,FAILURE,DONE,,PRODUCTION,2.864332,2022-07-25T14:26:02.616+00:00,2022-07-25T14:26:05.480+00:00,gitlab:GitlabProject:1:44
+gitlab:GitlabJob:1:92,format,gitlab:GitlabPipeline:1:18,FAILURE,DONE,,PRODUCTION,1.419497,2022-07-25T14:47:12.876+00:00,2022-07-25T14:47:14.295+00:00,gitlab:GitlabProject:1:44
+gitlab:GitlabJob:1:93,format,gitlab:GitlabPipeline:1:19,FAILURE,DONE,,PRODUCTION,1.682669,2022-07-25T14:53:56.227+00:00,2022-07-25T14:53:57.910+00:00,gitlab:GitlabProject:1:44
+gitlab:GitlabJob:1:94,format,gitlab:GitlabPipeline:1:20,FAILURE,DONE,,PRODUCTION,1.837993,2022-07-25T14:55:26.493+00:00,2022-07-25T14:55:28.331+00:00,gitlab:GitlabProject:1:44
+gitlab:GitlabJob:1:95,format,gitlab:GitlabPipeline:1:21,FAILURE,DONE,,PRODUCTION,1.68669,2022-07-25T14:56:59.811+00:00,2022-07-25T14:57:01.498+00:00,gitlab:GitlabProject:1:44
+gitlab:GitlabJob:1:96,format,gitlab:GitlabPipeline:1:21,FAILURE,DONE,,PRODUCTION,5.006028,2022-07-25T14:59:29.276+00:00,2022-07-25T14:59:34.282+00:00,gitlab:GitlabProject:1:44
+gitlab:GitlabJob:1:97,format,gitlab:GitlabPipeline:1:22,SUCCESS,DONE,,PRODUCTION,3.146301,2022-07-25T15:00:43.749+00:00,2022-07-25T15:00:46.895+00:00,gitlab:GitlabProject:1:44
+gitlab:GitlabJob:1:98,format,gitlab:GitlabPipeline:1:23,SUCCESS,DONE,,PRODUCTION,2.960982,2022-07-25T15:03:23.471+00:00,2022-07-25T15:03:26.432+00:00,gitlab:GitlabProject:1:44
+gitlab:GitlabJob:1:99,format,gitlab:GitlabPipeline:1:24,SUCCESS,DONE,,PRODUCTION,2.781517,2022-07-25T15:06:54.037+00:00,2022-07-25T15:06:56.819+00:00,gitlab:GitlabProject:1:44
diff --git a/backend/plugins/gitlab/tasks/deployment_convertor.go
b/backend/plugins/gitlab/tasks/deployment_convertor.go
index bf3cfdc40..81d9b0b61 100644
--- a/backend/plugins/gitlab/tasks/deployment_convertor.go
+++ b/backend/plugins/gitlab/tasks/deployment_convertor.go
@@ -78,14 +78,14 @@ func ConvertDeployment(taskCtx plugin.SubTaskContext)
errors.Error {
Convert: func(inputRow interface{}) ([]interface{},
errors.Error) {
gitlabDeployment := inputRow.(*models.GitlabDeployment)
- var duration *uint64
+ var duration *float64
if gitlabDeployment.DeployableDuration != nil {
- deployableDuration :=
cast.ToUint64(*gitlabDeployment.DeployableDuration)
+ deployableDuration :=
cast.ToFloat64(*gitlabDeployment.DeployableDuration)
duration = &deployableDuration
}
if duration == nil || *duration == 0 {
if gitlabDeployment.DeployableFinishedAt != nil
&& gitlabDeployment.DeployableCreatedAt != nil {
- deployableDuration :=
uint64(gitlabDeployment.DeployableFinishedAt.Sub(*gitlabDeployment.DeployableCreatedAt).Seconds())
+ deployableDuration :=
gitlabDeployment.DeployableFinishedAt.Sub(*gitlabDeployment.DeployableCreatedAt).Seconds()
duration = &deployableDuration
}
}
diff --git a/backend/plugins/gitlab/tasks/job_convertor.go
b/backend/plugins/gitlab/tasks/job_convertor.go
index 17837fbb1..3cd02d3b9 100644
--- a/backend/plugins/gitlab/tasks/job_convertor.go
+++ b/backend/plugins/gitlab/tasks/job_convertor.go
@@ -95,7 +95,7 @@ func ConvertJobs(taskCtx plugin.SubTaskContext) (err
errors.Error) {
Default: devops.STATUS_OTHER,
}, gitlabJob.Status),
- DurationSec: uint64(gitlabJob.Duration),
+ DurationSec: gitlabJob.Duration,
StartedDate: *startedAt,
FinishedDate: gitlabJob.FinishedAt,
CicdScopeId:
projectIdGen.Generate(data.Options.ConnectionId, gitlabJob.ProjectId),
diff --git a/backend/plugins/gitlab/tasks/pipeline_convertor.go
b/backend/plugins/gitlab/tasks/pipeline_convertor.go
index a874fe11c..4192c6a02 100644
--- a/backend/plugins/gitlab/tasks/pipeline_convertor.go
+++ b/backend/plugins/gitlab/tasks/pipeline_convertor.go
@@ -108,7 +108,7 @@ func ConvertPipelines(taskCtx plugin.SubTaskContext)
errors.Error {
domainPipeline.DurationSec = 0
} else if domainPipeline.FinishedDate != nil {
durationTime :=
domainPipeline.FinishedDate.Sub(startedAt)
- domainPipeline.DurationSec =
uint64(durationTime.Seconds())
+ domainPipeline.DurationSec =
durationTime.Seconds()
}
return []interface{}{
diff --git a/backend/plugins/jenkins/e2e/snapshot_tables/cicd_pipelines.csv
b/backend/plugins/jenkins/e2e/snapshot_tables/cicd_pipelines.csv
index 7d9ce895d..bbef41a7e 100644
--- a/backend/plugins/jenkins/e2e/snapshot_tables/cicd_pipelines.csv
+++ b/backend/plugins/jenkins/e2e/snapshot_tables/cicd_pipelines.csv
@@ -1,14 +1,14 @@
id,name,result,status,type,duration_sec,environment,created_date,finished_date,cicd_scope_id,_raw_data_params,_raw_data_table,_raw_data_id,_raw_data_remark
-jenkins:JenkinsBuild:1:Test-jenkins-dir/test-jenkins-sub-dir/test-sub-sub-dir/devlake#10001,Test-jenkins-dir/test-jenkins-sub-dir/test-sub-sub-dir/devlake#10001,,IN_PROGRESS,DEPLOYMENT,0,PRODUCTION,2022-04-15T10:06:17.000+00:00,,jenkins:JenkinsJob:1:Test-jenkins-dir/test-jenkins-sub-dir/test-sub-sub-dir/devlake,"{""ConnectionId"":1,""FullName"":""Test-jenkins-dir/test-jenkins-sub-dir/test-sub-sub-dir/devlake""}",_raw_jenkins_api_builds,10001,
-jenkins:JenkinsBuild:1:Test-jenkins-dir/test-jenkins-sub-dir/test-sub-sub-dir/devlake#10002,Test-jenkins-dir/test-jenkins-sub-dir/test-sub-sub-dir/devlake#10002,,IN_PROGRESS,DEPLOYMENT,0,PRODUCTION,2022-04-15T10:06:17.000+00:00,,jenkins:JenkinsJob:1:Test-jenkins-dir/test-jenkins-sub-dir/test-sub-sub-dir/devlake,"{""ConnectionId"":1,""FullName"":""Test-jenkins-dir/test-jenkins-sub-dir/test-sub-sub-dir/devlake""}",_raw_jenkins_api_builds,10002,
-jenkins:JenkinsBuild:1:Test-jenkins-dir/test-jenkins-sub-dir/test-sub-sub-dir/devlake#10003,Test-jenkins-dir/test-jenkins-sub-dir/test-sub-sub-dir/devlake#10003,FAILURE,DONE,DEPLOYMENT,0,PRODUCTION,2022-04-15T10:06:17.000+00:00,2022-04-15T10:06:17.000+00:00,jenkins:JenkinsJob:1:Test-jenkins-dir/test-jenkins-sub-dir/test-sub-sub-dir/devlake,"{""ConnectionId"":1,""FullName"":""Test-jenkins-dir/test-jenkins-sub-dir/test-sub-sub-dir/devlake""}",_raw_jenkins_api_builds,10003,
-jenkins:JenkinsBuild:1:Test-jenkins-dir/test-jenkins-sub-dir/test-sub-sub-dir/devlake#10004,Test-jenkins-dir/test-jenkins-sub-dir/test-sub-sub-dir/devlake#10004,,DONE,DEPLOYMENT,0,PRODUCTION,2022-04-15T10:06:17.000+00:00,2022-04-15T10:06:17.000+00:00,jenkins:JenkinsJob:1:Test-jenkins-dir/test-jenkins-sub-dir/test-sub-sub-dir/devlake,"{""ConnectionId"":1,""FullName"":""Test-jenkins-dir/test-jenkins-sub-dir/test-sub-sub-dir/devlake""}",_raw_jenkins_api_builds,10004,
-jenkins:JenkinsBuild:1:Test-jenkins-dir/test-jenkins-sub-dir/test-sub-sub-dir/devlake#10005,Test-jenkins-dir/test-jenkins-sub-dir/test-sub-sub-dir/devlake#10005,,DONE,DEPLOYMENT,0,PRODUCTION,2022-04-15T10:06:17.000+00:00,2022-04-15T10:06:17.000+00:00,jenkins:JenkinsJob:1:Test-jenkins-dir/test-jenkins-sub-dir/test-sub-sub-dir/devlake,"{""ConnectionId"":1,""FullName"":""Test-jenkins-dir/test-jenkins-sub-dir/test-sub-sub-dir/devlake""}",_raw_jenkins_api_builds,10005,
-jenkins:JenkinsBuild:1:Test-jenkins-dir/test-jenkins-sub-dir/test-sub-sub-dir/devlake#11,Test-jenkins-dir/test-jenkins-sub-dir/test-sub-sub-dir/devlake#11,SUCCESS,DONE,DEPLOYMENT,14,PRODUCTION,2022-04-15T10:10:16.000+00:00,2022-04-15T10:10:30.000+00:00,jenkins:JenkinsJob:1:Test-jenkins-dir/test-jenkins-sub-dir/test-sub-sub-dir/devlake,"{""ConnectionId"":1,""FullName"":""Test-jenkins-dir/test-jenkins-sub-dir/test-sub-sub-dir/devlake""}",_raw_jenkins_api_builds,95,
-jenkins:JenkinsBuild:1:Test-jenkins-dir/test-jenkins-sub-dir/test-sub-sub-dir/devlake#17,Test-jenkins-dir/test-jenkins-sub-dir/test-sub-sub-dir/devlake#17,SUCCESS,DONE,DEPLOYMENT,0,PRODUCTION,2022-04-15T10:05:53.000+00:00,2022-04-15T10:05:53.000+00:00,jenkins:JenkinsJob:1:Test-jenkins-dir/test-jenkins-sub-dir/test-sub-sub-dir/devlake,"{""ConnectionId"":1,""FullName"":""Test-jenkins-dir/test-jenkins-sub-dir/test-sub-sub-dir/devlake""}",_raw_jenkins_api_builds,124,
-jenkins:JenkinsBuild:1:Test-jenkins-dir/test-jenkins-sub-dir/test-sub-sub-dir/devlake#21,Test-jenkins-dir/test-jenkins-sub-dir/test-sub-sub-dir/devlake#21,SUCCESS,DONE,DEPLOYMENT,2,PRODUCTION,2022-04-15T11:35:48.000+00:00,2022-04-15T11:35:50.000+00:00,jenkins:JenkinsJob:1:Test-jenkins-dir/test-jenkins-sub-dir/test-sub-sub-dir/devlake,"{""ConnectionId"":1,""FullName"":""Test-jenkins-dir/test-jenkins-sub-dir/test-sub-sub-dir/devlake""}",_raw_jenkins_api_builds,94,
-jenkins:JenkinsBuild:1:Test-jenkins-dir/test-jenkins-sub-dir/test-sub-sub-dir/devlake#23,Test-jenkins-dir/test-jenkins-sub-dir/test-sub-sub-dir/devlake#23,SUCCESS,DONE,DEPLOYMENT,0,PRODUCTION,2022-09-08T14:26:51.000+00:00,2022-09-08T14:26:51.000+00:00,jenkins:JenkinsJob:1:Test-jenkins-dir/test-jenkins-sub-dir/test-sub-sub-dir/devlake,"{""ConnectionId"":1,""FullName"":""Test-jenkins-dir/test-jenkins-sub-dir/test-sub-sub-dir/devlake""}",_raw_jenkins_api_builds,96,
-jenkins:JenkinsBuild:1:Test-jenkins-dir/test-jenkins-sub-dir/test-sub-sub-dir/devlake#27,Test-jenkins-dir/test-jenkins-sub-dir/test-sub-sub-dir/devlake#27,,IN_PROGRESS,DEPLOYMENT,0,PRODUCTION,2022-04-15T10:06:17.000+00:00,,jenkins:JenkinsJob:1:Test-jenkins-dir/test-jenkins-sub-dir/test-sub-sub-dir/devlake,"{""ConnectionId"":1,""FullName"":""Test-jenkins-dir/test-jenkins-sub-dir/test-sub-sub-dir/devlake""}",_raw_jenkins_api_builds,123,
-jenkins:JenkinsBuild:1:Test-jenkins-dir/test-jenkins-sub-dir/test-sub-sub-dir/devlake#31,Test-jenkins-dir/test-jenkins-sub-dir/test-sub-sub-dir/devlake#31,SUCCESS,DONE,DEPLOYMENT,1,PRODUCTION,2022-04-15T12:00:49.000+00:00,2022-04-15T12:00:50.000+00:00,jenkins:JenkinsJob:1:Test-jenkins-dir/test-jenkins-sub-dir/test-sub-sub-dir/devlake,"{""ConnectionId"":1,""FullName"":""Test-jenkins-dir/test-jenkins-sub-dir/test-sub-sub-dir/devlake""}",_raw_jenkins_api_builds,93,
-jenkins:JenkinsBuild:1:Test-jenkins-dir/test-jenkins-sub-dir/test-sub-sub-dir/devlake#37,Test-jenkins-dir/test-jenkins-sub-dir/test-sub-sub-dir/devlake#37,SUCCESS,DONE,DEPLOYMENT,0,PRODUCTION,2022-04-15T10:06:26.000+00:00,2022-04-15T10:06:26.000+00:00,jenkins:JenkinsJob:1:Test-jenkins-dir/test-jenkins-sub-dir/test-sub-sub-dir/devlake,"{""ConnectionId"":1,""FullName"":""Test-jenkins-dir/test-jenkins-sub-dir/test-sub-sub-dir/devlake""}",_raw_jenkins_api_builds,122,
-jenkins:JenkinsBuild:1:Test-jenkins-dir/test-jenkins-sub-dir/test-sub-sub-dir/devlake#47,Test-jenkins-dir/test-jenkins-sub-dir/test-sub-sub-dir/devlake#47,SUCCESS,DONE,DEPLOYMENT,0,PRODUCTION,2022-04-15T11:35:56.000+00:00,2022-04-15T11:35:56.000+00:00,jenkins:JenkinsJob:1:Test-jenkins-dir/test-jenkins-sub-dir/test-sub-sub-dir/devlake,"{""ConnectionId"":1,""FullName"":""Test-jenkins-dir/test-jenkins-sub-dir/test-sub-sub-dir/devlake""}",_raw_jenkins_api_builds,121,
+jenkins:JenkinsBuild:1:Test-jenkins-dir/test-jenkins-sub-dir/test-sub-sub-dir/devlake#10001,Test-jenkins-dir/test-jenkins-sub-dir/test-sub-sub-dir/devlake#10001,,IN_PROGRESS,DEPLOYMENT,0.004,PRODUCTION,2022-04-15T10:06:17.000+00:00,,jenkins:JenkinsJob:1:Test-jenkins-dir/test-jenkins-sub-dir/test-sub-sub-dir/devlake,"{""ConnectionId"":1,""FullName"":""Test-jenkins-dir/test-jenkins-sub-dir/test-sub-sub-dir/devlake""}",_raw_jenkins_api_builds,10001,
+jenkins:JenkinsBuild:1:Test-jenkins-dir/test-jenkins-sub-dir/test-sub-sub-dir/devlake#10002,Test-jenkins-dir/test-jenkins-sub-dir/test-sub-sub-dir/devlake#10002,,IN_PROGRESS,DEPLOYMENT,0.004,PRODUCTION,2022-04-15T10:06:17.000+00:00,,jenkins:JenkinsJob:1:Test-jenkins-dir/test-jenkins-sub-dir/test-sub-sub-dir/devlake,"{""ConnectionId"":1,""FullName"":""Test-jenkins-dir/test-jenkins-sub-dir/test-sub-sub-dir/devlake""}",_raw_jenkins_api_builds,10002,
+jenkins:JenkinsBuild:1:Test-jenkins-dir/test-jenkins-sub-dir/test-sub-sub-dir/devlake#10003,Test-jenkins-dir/test-jenkins-sub-dir/test-sub-sub-dir/devlake#10003,FAILURE,DONE,DEPLOYMENT,0.004,PRODUCTION,2022-04-15T10:06:17.000+00:00,2022-04-15T10:06:17.004+00:00,jenkins:JenkinsJob:1:Test-jenkins-dir/test-jenkins-sub-dir/test-sub-sub-dir/devlake,"{""ConnectionId"":1,""FullName"":""Test-jenkins-dir/test-jenkins-sub-dir/test-sub-sub-dir/devlake""}",_raw_jenkins_api_builds,10003,
+jenkins:JenkinsBuild:1:Test-jenkins-dir/test-jenkins-sub-dir/test-sub-sub-dir/devlake#10004,Test-jenkins-dir/test-jenkins-sub-dir/test-sub-sub-dir/devlake#10004,,DONE,DEPLOYMENT,0.004,PRODUCTION,2022-04-15T10:06:17.000+00:00,2022-04-15T10:06:17.004+00:00,jenkins:JenkinsJob:1:Test-jenkins-dir/test-jenkins-sub-dir/test-sub-sub-dir/devlake,"{""ConnectionId"":1,""FullName"":""Test-jenkins-dir/test-jenkins-sub-dir/test-sub-sub-dir/devlake""}",_raw_jenkins_api_builds,10004,
+jenkins:JenkinsBuild:1:Test-jenkins-dir/test-jenkins-sub-dir/test-sub-sub-dir/devlake#10005,Test-jenkins-dir/test-jenkins-sub-dir/test-sub-sub-dir/devlake#10005,,DONE,DEPLOYMENT,0.004,PRODUCTION,2022-04-15T10:06:17.000+00:00,2022-04-15T10:06:17.004+00:00,jenkins:JenkinsJob:1:Test-jenkins-dir/test-jenkins-sub-dir/test-sub-sub-dir/devlake,"{""ConnectionId"":1,""FullName"":""Test-jenkins-dir/test-jenkins-sub-dir/test-sub-sub-dir/devlake""}",_raw_jenkins_api_builds,10005,
+jenkins:JenkinsBuild:1:Test-jenkins-dir/test-jenkins-sub-dir/test-sub-sub-dir/devlake#11,Test-jenkins-dir/test-jenkins-sub-dir/test-sub-sub-dir/devlake#11,SUCCESS,DONE,DEPLOYMENT,14.82,PRODUCTION,2022-04-15T10:10:16.000+00:00,2022-04-15T10:10:30.820+00:00,jenkins:JenkinsJob:1:Test-jenkins-dir/test-jenkins-sub-dir/test-sub-sub-dir/devlake,"{""ConnectionId"":1,""FullName"":""Test-jenkins-dir/test-jenkins-sub-dir/test-sub-sub-dir/devlake""}",_raw_jenkins_api_builds,95,
+jenkins:JenkinsBuild:1:Test-jenkins-dir/test-jenkins-sub-dir/test-sub-sub-dir/devlake#17,Test-jenkins-dir/test-jenkins-sub-dir/test-sub-sub-dir/devlake#17,SUCCESS,DONE,DEPLOYMENT,0.057,PRODUCTION,2022-04-15T10:05:53.000+00:00,2022-04-15T10:05:53.057+00:00,jenkins:JenkinsJob:1:Test-jenkins-dir/test-jenkins-sub-dir/test-sub-sub-dir/devlake,"{""ConnectionId"":1,""FullName"":""Test-jenkins-dir/test-jenkins-sub-dir/test-sub-sub-dir/devlake""}",_raw_jenkins_api_builds,124,
+jenkins:JenkinsBuild:1:Test-jenkins-dir/test-jenkins-sub-dir/test-sub-sub-dir/devlake#21,Test-jenkins-dir/test-jenkins-sub-dir/test-sub-sub-dir/devlake#21,SUCCESS,DONE,DEPLOYMENT,2.121,PRODUCTION,2022-04-15T11:35:48.000+00:00,2022-04-15T11:35:50.121+00:00,jenkins:JenkinsJob:1:Test-jenkins-dir/test-jenkins-sub-dir/test-sub-sub-dir/devlake,"{""ConnectionId"":1,""FullName"":""Test-jenkins-dir/test-jenkins-sub-dir/test-sub-sub-dir/devlake""}",_raw_jenkins_api_builds,94,
+jenkins:JenkinsBuild:1:Test-jenkins-dir/test-jenkins-sub-dir/test-sub-sub-dir/devlake#23,Test-jenkins-dir/test-jenkins-sub-dir/test-sub-sub-dir/devlake#23,SUCCESS,DONE,DEPLOYMENT,0.061,PRODUCTION,2022-09-08T14:26:51.000+00:00,2022-09-08T14:26:51.061+00:00,jenkins:JenkinsJob:1:Test-jenkins-dir/test-jenkins-sub-dir/test-sub-sub-dir/devlake,"{""ConnectionId"":1,""FullName"":""Test-jenkins-dir/test-jenkins-sub-dir/test-sub-sub-dir/devlake""}",_raw_jenkins_api_builds,96,
+jenkins:JenkinsBuild:1:Test-jenkins-dir/test-jenkins-sub-dir/test-sub-sub-dir/devlake#27,Test-jenkins-dir/test-jenkins-sub-dir/test-sub-sub-dir/devlake#27,,IN_PROGRESS,DEPLOYMENT,0.004,PRODUCTION,2022-04-15T10:06:17.000+00:00,,jenkins:JenkinsJob:1:Test-jenkins-dir/test-jenkins-sub-dir/test-sub-sub-dir/devlake,"{""ConnectionId"":1,""FullName"":""Test-jenkins-dir/test-jenkins-sub-dir/test-sub-sub-dir/devlake""}",_raw_jenkins_api_builds,123,
+jenkins:JenkinsBuild:1:Test-jenkins-dir/test-jenkins-sub-dir/test-sub-sub-dir/devlake#31,Test-jenkins-dir/test-jenkins-sub-dir/test-sub-sub-dir/devlake#31,SUCCESS,DONE,DEPLOYMENT,1.587,PRODUCTION,2022-04-15T12:00:49.000+00:00,2022-04-15T12:00:50.587+00:00,jenkins:JenkinsJob:1:Test-jenkins-dir/test-jenkins-sub-dir/test-sub-sub-dir/devlake,"{""ConnectionId"":1,""FullName"":""Test-jenkins-dir/test-jenkins-sub-dir/test-sub-sub-dir/devlake""}",_raw_jenkins_api_builds,93,
+jenkins:JenkinsBuild:1:Test-jenkins-dir/test-jenkins-sub-dir/test-sub-sub-dir/devlake#37,Test-jenkins-dir/test-jenkins-sub-dir/test-sub-sub-dir/devlake#37,SUCCESS,DONE,DEPLOYMENT,0.003,PRODUCTION,2022-04-15T10:06:26.000+00:00,2022-04-15T10:06:26.003+00:00,jenkins:JenkinsJob:1:Test-jenkins-dir/test-jenkins-sub-dir/test-sub-sub-dir/devlake,"{""ConnectionId"":1,""FullName"":""Test-jenkins-dir/test-jenkins-sub-dir/test-sub-sub-dir/devlake""}",_raw_jenkins_api_builds,122,
+jenkins:JenkinsBuild:1:Test-jenkins-dir/test-jenkins-sub-dir/test-sub-sub-dir/devlake#47,Test-jenkins-dir/test-jenkins-sub-dir/test-sub-sub-dir/devlake#47,SUCCESS,DONE,DEPLOYMENT,0.006,PRODUCTION,2022-04-15T11:35:56.000+00:00,2022-04-15T11:35:56.006+00:00,jenkins:JenkinsJob:1:Test-jenkins-dir/test-jenkins-sub-dir/test-sub-sub-dir/devlake,"{""ConnectionId"":1,""FullName"":""Test-jenkins-dir/test-jenkins-sub-dir/test-sub-sub-dir/devlake""}",_raw_jenkins_api_builds,121,
diff --git a/backend/plugins/jenkins/e2e/snapshot_tables/cicd_tasks.csv
b/backend/plugins/jenkins/e2e/snapshot_tables/cicd_tasks.csv
index 128f2dec2..e3002446e 100644
--- a/backend/plugins/jenkins/e2e/snapshot_tables/cicd_tasks.csv
+++ b/backend/plugins/jenkins/e2e/snapshot_tables/cicd_tasks.csv
@@ -1,13 +1,13 @@
id,name,pipeline_id,result,status,type,environment,duration_sec,started_date,finished_date,cicd_scope_id,_raw_data_params,_raw_data_table,_raw_data_id,_raw_data_remark
-jenkins:JenkinsBuild:1:Test-jenkins-dir/test-jenkins-sub-dir/test-sub-sub-dir/devlake#10001,Test-jenkins-dir/test-jenkins-sub-dir/test-sub-sub-dir/devlake,jenkins:JenkinsBuild:1:Test-jenkins-dir/test-jenkins-sub-dir/test-sub-sub-dir/devlake#10001,,IN_PROGRESS,DEPLOYMENT,PRODUCTION,0,2022-04-15T10:06:17.000+00:00,,jenkins:JenkinsJob:1:Test-jenkins-dir/test-jenkins-sub-dir/test-sub-sub-dir/devlake,"{""ConnectionId"":1,""FullName"":""Test-jenkins-dir/test-jenkins-sub-dir/test-sub-sub-dir/de
[...]
-jenkins:JenkinsBuild:1:Test-jenkins-dir/test-jenkins-sub-dir/test-sub-sub-dir/devlake#10002,Test-jenkins-dir/test-jenkins-sub-dir/test-sub-sub-dir/devlake,jenkins:JenkinsBuild:1:Test-jenkins-dir/test-jenkins-sub-dir/test-sub-sub-dir/devlake#10002,,IN_PROGRESS,DEPLOYMENT,PRODUCTION,0,2022-04-15T10:06:17.000+00:00,,jenkins:JenkinsJob:1:Test-jenkins-dir/test-jenkins-sub-dir/test-sub-sub-dir/devlake,"{""ConnectionId"":1,""FullName"":""Test-jenkins-dir/test-jenkins-sub-dir/test-sub-sub-dir/de
[...]
-jenkins:JenkinsBuild:1:Test-jenkins-dir/test-jenkins-sub-dir/test-sub-sub-dir/devlake#10003,Test-jenkins-dir/test-jenkins-sub-dir/test-sub-sub-dir/devlake,jenkins:JenkinsBuild:1:Test-jenkins-dir/test-jenkins-sub-dir/test-sub-sub-dir/devlake#10003,FAILURE,DONE,DEPLOYMENT,PRODUCTION,0,2022-04-15T10:06:17.000+00:00,2022-04-15T10:06:17.000+00:00,jenkins:JenkinsJob:1:Test-jenkins-dir/test-jenkins-sub-dir/test-sub-sub-dir/devlake,"{""ConnectionId"":1,""FullName"":""Test-jenkins-dir/test-jenkin
[...]
-jenkins:JenkinsBuild:1:Test-jenkins-dir/test-jenkins-sub-dir/test-sub-sub-dir/devlake#10004,Test-jenkins-dir/test-jenkins-sub-dir/test-sub-sub-dir/devlake,jenkins:JenkinsBuild:1:Test-jenkins-dir/test-jenkins-sub-dir/test-sub-sub-dir/devlake#10004,,DONE,DEPLOYMENT,PRODUCTION,0,2022-04-15T10:06:17.000+00:00,2022-04-15T10:06:17.000+00:00,jenkins:JenkinsJob:1:Test-jenkins-dir/test-jenkins-sub-dir/test-sub-sub-dir/devlake,"{""ConnectionId"":1,""FullName"":""Test-jenkins-dir/test-jenkins-sub-d
[...]
-jenkins:JenkinsBuild:1:Test-jenkins-dir/test-jenkins-sub-dir/test-sub-sub-dir/devlake#10005,Test-jenkins-dir/test-jenkins-sub-dir/test-sub-sub-dir/devlake,jenkins:JenkinsBuild:1:Test-jenkins-dir/test-jenkins-sub-dir/test-sub-sub-dir/devlake#10005,,DONE,DEPLOYMENT,PRODUCTION,0,2022-04-15T10:06:17.000+00:00,2022-04-15T10:06:17.000+00:00,jenkins:JenkinsJob:1:Test-jenkins-dir/test-jenkins-sub-dir/test-sub-sub-dir/devlake,"{""ConnectionId"":1,""FullName"":""Test-jenkins-dir/test-jenkins-sub-d
[...]
-jenkins:JenkinsBuild:1:Test-jenkins-dir/test-jenkins-sub-dir/test-sub-sub-dir/devlake#17,Test-jenkins-dir/test-jenkins-sub-dir/test-sub-sub-dir/devlake,jenkins:JenkinsBuild:1:Test-jenkins-dir/test-jenkins-sub-dir/test-sub-sub-dir/devlake#17,SUCCESS,DONE,DEPLOYMENT,PRODUCTION,0,2022-04-15T10:05:53.000+00:00,2022-04-15T10:05:53.000+00:00,jenkins:JenkinsJob:1:Test-jenkins-dir/test-jenkins-sub-dir/test-sub-sub-dir/devlake,"{""ConnectionId"":1,""FullName"":""Test-jenkins-dir/test-jenkins-sub-
[...]
-jenkins:JenkinsBuild:1:Test-jenkins-dir/test-jenkins-sub-dir/test-sub-sub-dir/devlake#21,Test-jenkins-dir/test-jenkins-sub-dir/test-sub-sub-dir/devlake,jenkins:JenkinsBuild:1:Test-jenkins-dir/test-jenkins-sub-dir/test-sub-sub-dir/devlake#21,SUCCESS,DONE,DEPLOYMENT,PRODUCTION,2,2022-04-15T11:35:48.000+00:00,2022-04-15T11:35:50.000+00:00,jenkins:JenkinsJob:1:Test-jenkins-dir/test-jenkins-sub-dir/test-sub-sub-dir/devlake,"{""ConnectionId"":1,""FullName"":""Test-jenkins-dir/test-jenkins-sub-
[...]
-jenkins:JenkinsBuild:1:Test-jenkins-dir/test-jenkins-sub-dir/test-sub-sub-dir/devlake#23,Test-jenkins-dir/test-jenkins-sub-dir/test-sub-sub-dir/devlake,jenkins:JenkinsBuild:1:Test-jenkins-dir/test-jenkins-sub-dir/test-sub-sub-dir/devlake#23,SUCCESS,DONE,DEPLOYMENT,PRODUCTION,0,2022-09-08T14:26:51.000+00:00,2022-09-08T14:26:51.000+00:00,jenkins:JenkinsJob:1:Test-jenkins-dir/test-jenkins-sub-dir/test-sub-sub-dir/devlake,"{""ConnectionId"":1,""FullName"":""Test-jenkins-dir/test-jenkins-sub-
[...]
-jenkins:JenkinsBuild:1:Test-jenkins-dir/test-jenkins-sub-dir/test-sub-sub-dir/devlake#27,Test-jenkins-dir/test-jenkins-sub-dir/test-sub-sub-dir/devlake,jenkins:JenkinsBuild:1:Test-jenkins-dir/test-jenkins-sub-dir/test-sub-sub-dir/devlake#27,,IN_PROGRESS,DEPLOYMENT,PRODUCTION,0,2022-04-15T10:06:17.000+00:00,,jenkins:JenkinsJob:1:Test-jenkins-dir/test-jenkins-sub-dir/test-sub-sub-dir/devlake,"{""ConnectionId"":1,""FullName"":""Test-jenkins-dir/test-jenkins-sub-dir/test-sub-sub-dir/devlake"
[...]
-jenkins:JenkinsBuild:1:Test-jenkins-dir/test-jenkins-sub-dir/test-sub-sub-dir/devlake#31,Test-jenkins-dir/test-jenkins-sub-dir/test-sub-sub-dir/devlake,jenkins:JenkinsBuild:1:Test-jenkins-dir/test-jenkins-sub-dir/test-sub-sub-dir/devlake#31,SUCCESS,DONE,DEPLOYMENT,PRODUCTION,1,2022-04-15T12:00:49.000+00:00,2022-04-15T12:00:50.000+00:00,jenkins:JenkinsJob:1:Test-jenkins-dir/test-jenkins-sub-dir/test-sub-sub-dir/devlake,"{""ConnectionId"":1,""FullName"":""Test-jenkins-dir/test-jenkins-sub-
[...]
-jenkins:JenkinsBuild:1:Test-jenkins-dir/test-jenkins-sub-dir/test-sub-sub-dir/devlake#37,Test-jenkins-dir/test-jenkins-sub-dir/test-sub-sub-dir/devlake,jenkins:JenkinsBuild:1:Test-jenkins-dir/test-jenkins-sub-dir/test-sub-sub-dir/devlake#37,SUCCESS,DONE,DEPLOYMENT,PRODUCTION,0,2022-04-15T10:06:26.000+00:00,2022-04-15T10:06:26.000+00:00,jenkins:JenkinsJob:1:Test-jenkins-dir/test-jenkins-sub-dir/test-sub-sub-dir/devlake,"{""ConnectionId"":1,""FullName"":""Test-jenkins-dir/test-jenkins-sub-
[...]
-jenkins:JenkinsBuild:1:Test-jenkins-dir/test-jenkins-sub-dir/test-sub-sub-dir/devlake#47,Test-jenkins-dir/test-jenkins-sub-dir/test-sub-sub-dir/devlake,jenkins:JenkinsBuild:1:Test-jenkins-dir/test-jenkins-sub-dir/test-sub-sub-dir/devlake#47,SUCCESS,DONE,DEPLOYMENT,PRODUCTION,0,2022-04-15T11:35:56.000+00:00,2022-04-15T11:35:56.000+00:00,jenkins:JenkinsJob:1:Test-jenkins-dir/test-jenkins-sub-dir/test-sub-sub-dir/devlake,"{""ConnectionId"":1,""FullName"":""Test-jenkins-dir/test-jenkins-sub-
[...]
+jenkins:JenkinsBuild:1:Test-jenkins-dir/test-jenkins-sub-dir/test-sub-sub-dir/devlake#10001,Test-jenkins-dir/test-jenkins-sub-dir/test-sub-sub-dir/devlake,jenkins:JenkinsBuild:1:Test-jenkins-dir/test-jenkins-sub-dir/test-sub-sub-dir/devlake#10001,,IN_PROGRESS,DEPLOYMENT,PRODUCTION,0.004,2022-04-15T10:06:17.000+00:00,,jenkins:JenkinsJob:1:Test-jenkins-dir/test-jenkins-sub-dir/test-sub-sub-dir/devlake,"{""ConnectionId"":1,""FullName"":""Test-jenkins-dir/test-jenkins-sub-dir/test-sub-sub-di
[...]
+jenkins:JenkinsBuild:1:Test-jenkins-dir/test-jenkins-sub-dir/test-sub-sub-dir/devlake#10002,Test-jenkins-dir/test-jenkins-sub-dir/test-sub-sub-dir/devlake,jenkins:JenkinsBuild:1:Test-jenkins-dir/test-jenkins-sub-dir/test-sub-sub-dir/devlake#10002,,IN_PROGRESS,DEPLOYMENT,PRODUCTION,0.004,2022-04-15T10:06:17.000+00:00,,jenkins:JenkinsJob:1:Test-jenkins-dir/test-jenkins-sub-dir/test-sub-sub-dir/devlake,"{""ConnectionId"":1,""FullName"":""Test-jenkins-dir/test-jenkins-sub-dir/test-sub-sub-di
[...]
+jenkins:JenkinsBuild:1:Test-jenkins-dir/test-jenkins-sub-dir/test-sub-sub-dir/devlake#10003,Test-jenkins-dir/test-jenkins-sub-dir/test-sub-sub-dir/devlake,jenkins:JenkinsBuild:1:Test-jenkins-dir/test-jenkins-sub-dir/test-sub-sub-dir/devlake#10003,FAILURE,DONE,DEPLOYMENT,PRODUCTION,0.004,2022-04-15T10:06:17.000+00:00,2022-04-15T10:06:17.004+00:00,jenkins:JenkinsJob:1:Test-jenkins-dir/test-jenkins-sub-dir/test-sub-sub-dir/devlake,"{""ConnectionId"":1,""FullName"":""Test-jenkins-dir/test-je
[...]
+jenkins:JenkinsBuild:1:Test-jenkins-dir/test-jenkins-sub-dir/test-sub-sub-dir/devlake#10004,Test-jenkins-dir/test-jenkins-sub-dir/test-sub-sub-dir/devlake,jenkins:JenkinsBuild:1:Test-jenkins-dir/test-jenkins-sub-dir/test-sub-sub-dir/devlake#10004,,DONE,DEPLOYMENT,PRODUCTION,0.004,2022-04-15T10:06:17.000+00:00,2022-04-15T10:06:17.004+00:00,jenkins:JenkinsJob:1:Test-jenkins-dir/test-jenkins-sub-dir/test-sub-sub-dir/devlake,"{""ConnectionId"":1,""FullName"":""Test-jenkins-dir/test-jenkins-s
[...]
+jenkins:JenkinsBuild:1:Test-jenkins-dir/test-jenkins-sub-dir/test-sub-sub-dir/devlake#10005,Test-jenkins-dir/test-jenkins-sub-dir/test-sub-sub-dir/devlake,jenkins:JenkinsBuild:1:Test-jenkins-dir/test-jenkins-sub-dir/test-sub-sub-dir/devlake#10005,,DONE,DEPLOYMENT,PRODUCTION,0.004,2022-04-15T10:06:17.000+00:00,2022-04-15T10:06:17.004+00:00,jenkins:JenkinsJob:1:Test-jenkins-dir/test-jenkins-sub-dir/test-sub-sub-dir/devlake,"{""ConnectionId"":1,""FullName"":""Test-jenkins-dir/test-jenkins-s
[...]
+jenkins:JenkinsBuild:1:Test-jenkins-dir/test-jenkins-sub-dir/test-sub-sub-dir/devlake#17,Test-jenkins-dir/test-jenkins-sub-dir/test-sub-sub-dir/devlake,jenkins:JenkinsBuild:1:Test-jenkins-dir/test-jenkins-sub-dir/test-sub-sub-dir/devlake#17,SUCCESS,DONE,DEPLOYMENT,PRODUCTION,0.057,2022-04-15T10:05:53.000+00:00,2022-04-15T10:05:53.057+00:00,jenkins:JenkinsJob:1:Test-jenkins-dir/test-jenkins-sub-dir/test-sub-sub-dir/devlake,"{""ConnectionId"":1,""FullName"":""Test-jenkins-dir/test-jenkins-
[...]
+jenkins:JenkinsBuild:1:Test-jenkins-dir/test-jenkins-sub-dir/test-sub-sub-dir/devlake#21,Test-jenkins-dir/test-jenkins-sub-dir/test-sub-sub-dir/devlake,jenkins:JenkinsBuild:1:Test-jenkins-dir/test-jenkins-sub-dir/test-sub-sub-dir/devlake#21,SUCCESS,DONE,DEPLOYMENT,PRODUCTION,2.121,2022-04-15T11:35:48.000+00:00,2022-04-15T11:35:50.121+00:00,jenkins:JenkinsJob:1:Test-jenkins-dir/test-jenkins-sub-dir/test-sub-sub-dir/devlake,"{""ConnectionId"":1,""FullName"":""Test-jenkins-dir/test-jenkins-
[...]
+jenkins:JenkinsBuild:1:Test-jenkins-dir/test-jenkins-sub-dir/test-sub-sub-dir/devlake#23,Test-jenkins-dir/test-jenkins-sub-dir/test-sub-sub-dir/devlake,jenkins:JenkinsBuild:1:Test-jenkins-dir/test-jenkins-sub-dir/test-sub-sub-dir/devlake#23,SUCCESS,DONE,DEPLOYMENT,PRODUCTION,0.061,2022-09-08T14:26:51.000+00:00,2022-09-08T14:26:51.061+00:00,jenkins:JenkinsJob:1:Test-jenkins-dir/test-jenkins-sub-dir/test-sub-sub-dir/devlake,"{""ConnectionId"":1,""FullName"":""Test-jenkins-dir/test-jenkins-
[...]
+jenkins:JenkinsBuild:1:Test-jenkins-dir/test-jenkins-sub-dir/test-sub-sub-dir/devlake#27,Test-jenkins-dir/test-jenkins-sub-dir/test-sub-sub-dir/devlake,jenkins:JenkinsBuild:1:Test-jenkins-dir/test-jenkins-sub-dir/test-sub-sub-dir/devlake#27,,IN_PROGRESS,DEPLOYMENT,PRODUCTION,0.004,2022-04-15T10:06:17.000+00:00,,jenkins:JenkinsJob:1:Test-jenkins-dir/test-jenkins-sub-dir/test-sub-sub-dir/devlake,"{""ConnectionId"":1,""FullName"":""Test-jenkins-dir/test-jenkins-sub-dir/test-sub-sub-dir/devl
[...]
+jenkins:JenkinsBuild:1:Test-jenkins-dir/test-jenkins-sub-dir/test-sub-sub-dir/devlake#31,Test-jenkins-dir/test-jenkins-sub-dir/test-sub-sub-dir/devlake,jenkins:JenkinsBuild:1:Test-jenkins-dir/test-jenkins-sub-dir/test-sub-sub-dir/devlake#31,SUCCESS,DONE,DEPLOYMENT,PRODUCTION,1.587,2022-04-15T12:00:49.000+00:00,2022-04-15T12:00:50.587+00:00,jenkins:JenkinsJob:1:Test-jenkins-dir/test-jenkins-sub-dir/test-sub-sub-dir/devlake,"{""ConnectionId"":1,""FullName"":""Test-jenkins-dir/test-jenkins-
[...]
+jenkins:JenkinsBuild:1:Test-jenkins-dir/test-jenkins-sub-dir/test-sub-sub-dir/devlake#37,Test-jenkins-dir/test-jenkins-sub-dir/test-sub-sub-dir/devlake,jenkins:JenkinsBuild:1:Test-jenkins-dir/test-jenkins-sub-dir/test-sub-sub-dir/devlake#37,SUCCESS,DONE,DEPLOYMENT,PRODUCTION,0.003,2022-04-15T10:06:26.000+00:00,2022-04-15T10:06:26.003+00:00,jenkins:JenkinsJob:1:Test-jenkins-dir/test-jenkins-sub-dir/test-sub-sub-dir/devlake,"{""ConnectionId"":1,""FullName"":""Test-jenkins-dir/test-jenkins-
[...]
+jenkins:JenkinsBuild:1:Test-jenkins-dir/test-jenkins-sub-dir/test-sub-sub-dir/devlake#47,Test-jenkins-dir/test-jenkins-sub-dir/test-sub-sub-dir/devlake,jenkins:JenkinsBuild:1:Test-jenkins-dir/test-jenkins-sub-dir/test-sub-sub-dir/devlake#47,SUCCESS,DONE,DEPLOYMENT,PRODUCTION,0.006,2022-04-15T11:35:56.000+00:00,2022-04-15T11:35:56.006+00:00,jenkins:JenkinsJob:1:Test-jenkins-dir/test-jenkins-sub-dir/test-sub-sub-dir/devlake,"{""ConnectionId"":1,""FullName"":""Test-jenkins-dir/test-jenkins-
[...]
diff --git
a/backend/plugins/jenkins/e2e/snapshot_tables/cicd_tasks_after_stages.csv
b/backend/plugins/jenkins/e2e/snapshot_tables/cicd_tasks_after_stages.csv
index ad371de98..6f5eebed8 100644
--- a/backend/plugins/jenkins/e2e/snapshot_tables/cicd_tasks_after_stages.csv
+++ b/backend/plugins/jenkins/e2e/snapshot_tables/cicd_tasks_after_stages.csv
@@ -1,15 +1,15 @@
id,name,pipeline_id,result,status,type,duration_sec,started_date,finished_date,environment,cicd_scope_id,_raw_data_params,_raw_data_table,_raw_data_id,_raw_data_remark
-jenkins:JenkinsStage:1:Test-jenkins-dir/test-jenkins-sub-dir/test-sub-sub-dir/devlake#10:8,scp-f/b,jenkins:JenkinsBuild:1:Test-jenkins-dir/test-jenkins-sub-dir/test-sub-sub-dir/devlake#10,SUCCESS,OTHER,,0,2019-10-29T04:01:34.000+00:00,2019-10-29T04:01:34.000+00:00,,jenkins:JenkinsJob:1:Test-jenkins-dir/test-jenkins-sub-dir/test-sub-sub-dir/devlake,"{""ConnectionId"":1,""FullName"":""Test-jenkins-dir/test-jenkins-sub-dir/test-sub-sub-dir/devlake""}",_raw_jenkins_api_stages,13577,
-jenkins:JenkinsStage:1:Test-jenkins-dir/test-jenkins-sub-dir/test-sub-sub-dir/devlake#11:9,gitlabInit,jenkins:JenkinsBuild:1:Test-jenkins-dir/test-jenkins-sub-dir/test-sub-sub-dir/devlake#11,SUCCESS,OTHER,,1312,2021-03-09T13:35:10.000+00:00,2021-03-09T13:57:02.000+00:00,,jenkins:JenkinsJob:1:Test-jenkins-dir/test-jenkins-sub-dir/test-sub-sub-dir/devlake,"{""ConnectionId"":1,""FullName"":""Test-jenkins-dir/test-jenkins-sub-dir/test-sub-sub-dir/devlake""}",_raw_jenkins_api_stages,13578,
-jenkins:JenkinsStage:1:Test-jenkins-dir/test-jenkins-sub-dir/test-sub-sub-dir/devlake#12:1,gitlabAutoSync,jenkins:JenkinsBuild:1:Test-jenkins-dir/test-jenkins-sub-dir/test-sub-sub-dir/devlake#12,SUCCESS,DONE,DEPLOYMENT,14,2020-02-07T11:54:28.000+00:00,2020-02-07T11:54:42.000+00:00,PRODUCTION,jenkins:JenkinsJob:1:Test-jenkins-dir/test-jenkins-sub-dir/test-sub-sub-dir/devlake,"{""ConnectionId"":1,""FullName"":""Test-jenkins-dir/test-jenkins-sub-dir/test-sub-sub-dir/devlake""}",_raw_jenkins
[...]
-jenkins:JenkinsStage:1:Test-jenkins-dir/test-jenkins-sub-dir/test-sub-sub-dir/devlake#13:2,gitlabInit,jenkins:JenkinsBuild:1:Test-jenkins-dir/test-jenkins-sub-dir/test-sub-sub-dir/devlake#13,SUCCESS,OTHER,,5,2020-03-18T02:19:17.000+00:00,2020-03-18T02:19:22.000+00:00,,jenkins:JenkinsJob:1:Test-jenkins-dir/test-jenkins-sub-dir/test-sub-sub-dir/devlake,"{""ConnectionId"":1,""FullName"":""Test-jenkins-dir/test-jenkins-sub-dir/test-sub-sub-dir/devlake""}",_raw_jenkins_api_stages,13580,
-jenkins:JenkinsStage:1:Test-jenkins-dir/test-jenkins-sub-dir/test-sub-sub-dir/devlake#14:3,gitlabAutoSync,jenkins:JenkinsBuild:1:Test-jenkins-dir/test-jenkins-sub-dir/test-sub-sub-dir/devlake#14,SUCCESS,DONE,DEPLOYMENT,83,2020-03-12T02:45:25.000+00:00,2020-03-12T02:46:48.000+00:00,PRODUCTION,jenkins:JenkinsJob:1:Test-jenkins-dir/test-jenkins-sub-dir/test-sub-sub-dir/devlake,"{""ConnectionId"":1,""FullName"":""Test-jenkins-dir/test-jenkins-sub-dir/test-sub-sub-dir/devlake""}",_raw_jenkins
[...]
-jenkins:JenkinsStage:1:Test-jenkins-dir/test-jenkins-sub-dir/test-sub-sub-dir/devlake#1:6,Hello,jenkins:JenkinsBuild:1:Test-jenkins-dir/test-jenkins-sub-dir/test-sub-sub-dir/devlake#1,SUCCESS,DONE,,0,2022-09-08T15:40:34.000+00:00,2022-09-08T15:40:34.000+00:00,,jenkins:JenkinsJob:1:Test-jenkins-dir/test-jenkins-sub-dir/test-sub-sub-dir/devlake,"{""ConnectionId"":1,""FullName"":""Test-jenkins-dir/test-jenkins-sub-dir/test-sub-sub-dir/devlake""}",_raw_jenkins_api_stages,1,
-jenkins:JenkinsStage:1:Test-jenkins-dir/test-jenkins-sub-dir/test-sub-sub-dir/devlake#2:7,Hello,jenkins:JenkinsBuild:1:Test-jenkins-dir/test-jenkins-sub-dir/test-sub-sub-dir/devlake#2,SUCCESS,DONE,,0,2022-09-08T15:40:49.000+00:00,2022-09-08T15:40:49.000+00:00,,jenkins:JenkinsJob:1:Test-jenkins-dir/test-jenkins-sub-dir/test-sub-sub-dir/devlake,"{""ConnectionId"":1,""FullName"":""Test-jenkins-dir/test-jenkins-sub-dir/test-sub-sub-dir/devlake""}",_raw_jenkins_api_stages,2,
-jenkins:JenkinsStage:1:Test-jenkins-dir/test-jenkins-sub-dir/test-sub-sub-dir/devlake#3:8,Hello,jenkins:JenkinsBuild:1:Test-jenkins-dir/test-jenkins-sub-dir/test-sub-sub-dir/devlake#3,SUCCESS,DONE,,0,2022-09-08T15:40:49.000+00:00,2022-09-08T15:40:49.000+00:00,,jenkins:JenkinsJob:1:Test-jenkins-dir/test-jenkins-sub-dir/test-sub-sub-dir/devlake,"{""ConnectionId"":1,""FullName"":""Test-jenkins-dir/test-jenkins-sub-dir/test-sub-sub-dir/devlake""}",_raw_jenkins_api_stages,3,
-jenkins:JenkinsStage:1:Test-jenkins-dir/test-jenkins-sub-dir/test-sub-sub-dir/devlake#4:9,Hello,jenkins:JenkinsBuild:1:Test-jenkins-dir/test-jenkins-sub-dir/test-sub-sub-dir/devlake#4,SUCCESS,DONE,,0,2022-09-08T15:40:17.000+00:00,2022-09-08T15:40:17.000+00:00,,jenkins:JenkinsJob:1:Test-jenkins-dir/test-jenkins-sub-dir/test-sub-sub-dir/devlake,"{""ConnectionId"":1,""FullName"":""Test-jenkins-dir/test-jenkins-sub-dir/test-sub-sub-dir/devlake""}",_raw_jenkins_api_stages,4,
-jenkins:JenkinsStage:1:Test-jenkins-dir/test-jenkins-sub-dir/test-sub-sub-dir/devlake#5:10,Hello,jenkins:JenkinsBuild:1:Test-jenkins-dir/test-jenkins-sub-dir/test-sub-sub-dir/devlake#5,SUCCESS,DONE,,0,2022-09-08T15:40:17.000+00:00,2022-09-08T15:40:17.000+00:00,,jenkins:JenkinsJob:1:Test-jenkins-dir/test-jenkins-sub-dir/test-sub-sub-dir/devlake,"{""ConnectionId"":1,""FullName"":""Test-jenkins-dir/test-jenkins-sub-dir/test-sub-sub-dir/devlake""}",_raw_jenkins_api_stages,5,
-jenkins:JenkinsStage:1:Test-jenkins-dir/test-jenkins-sub-dir/test-sub-sub-dir/devlake#6:11,Hello,jenkins:JenkinsBuild:1:Test-jenkins-dir/test-jenkins-sub-dir/test-sub-sub-dir/devlake#6,SUCCESS,DONE,,0,2022-09-08T15:40:34.000+00:00,2022-09-08T15:40:34.000+00:00,,jenkins:JenkinsJob:1:Test-jenkins-dir/test-jenkins-sub-dir/test-sub-sub-dir/devlake,"{""ConnectionId"":1,""FullName"":""Test-jenkins-dir/test-jenkins-sub-dir/test-sub-sub-dir/devlake""}",_raw_jenkins_api_stages,6,
-jenkins:JenkinsStage:1:Test-jenkins-dir/test-jenkins-sub-dir/test-sub-sub-dir/devlake#7:12,gitlabInit,jenkins:JenkinsBuild:1:Test-jenkins-dir/test-jenkins-sub-dir/test-sub-sub-dir/devlake#7,SUCCESS,OTHER,,0,2020-03-04T13:47:24.000+00:00,2020-03-04T13:47:24.000+00:00,,jenkins:JenkinsJob:1:Test-jenkins-dir/test-jenkins-sub-dir/test-sub-sub-dir/devlake,"{""ConnectionId"":1,""FullName"":""Test-jenkins-dir/test-jenkins-sub-dir/test-sub-sub-dir/devlake""}",_raw_jenkins_api_stages,13574,
-jenkins:JenkinsStage:1:Test-jenkins-dir/test-jenkins-sub-dir/test-sub-sub-dir/devlake#8:6,gitlabInit,jenkins:JenkinsBuild:1:Test-jenkins-dir/test-jenkins-sub-dir/test-sub-sub-dir/devlake#8,SUCCESS,OTHER,,215,2020-03-17T15:27:15.000+00:00,2020-03-17T15:30:50.000+00:00,,jenkins:JenkinsJob:1:Test-jenkins-dir/test-jenkins-sub-dir/test-sub-sub-dir/devlake,"{""ConnectionId"":1,""FullName"":""Test-jenkins-dir/test-jenkins-sub-dir/test-sub-sub-dir/devlake""}",_raw_jenkins_api_stages,13575,
-jenkins:JenkinsStage:1:Test-jenkins-dir/test-jenkins-sub-dir/test-sub-sub-dir/devlake#9:7,gitlabInit,jenkins:JenkinsBuild:1:Test-jenkins-dir/test-jenkins-sub-dir/test-sub-sub-dir/devlake#9,SUCCESS,OTHER,,5,2020-03-18T02:19:17.000+00:00,2020-03-18T02:19:22.000+00:00,,jenkins:JenkinsJob:1:Test-jenkins-dir/test-jenkins-sub-dir/test-sub-sub-dir/devlake,"{""ConnectionId"":1,""FullName"":""Test-jenkins-dir/test-jenkins-sub-dir/test-sub-sub-dir/devlake""}",_raw_jenkins_api_stages,13576,
+jenkins:JenkinsStage:1:Test-jenkins-dir/test-jenkins-sub-dir/test-sub-sub-dir/devlake#10:8,scp-f/b,jenkins:JenkinsBuild:1:Test-jenkins-dir/test-jenkins-sub-dir/test-sub-sub-dir/devlake#10,SUCCESS,OTHER,,0,2019-10-29T04:01:34.000+00:00,2019-10-29T04:01:34.297+00:00,,jenkins:JenkinsJob:1:Test-jenkins-dir/test-jenkins-sub-dir/test-sub-sub-dir/devlake,"{""ConnectionId"":1,""FullName"":""Test-jenkins-dir/test-jenkins-sub-dir/test-sub-sub-dir/devlake""}",_raw_jenkins_api_stages,13577,
+jenkins:JenkinsStage:1:Test-jenkins-dir/test-jenkins-sub-dir/test-sub-sub-dir/devlake#11:9,gitlabInit,jenkins:JenkinsBuild:1:Test-jenkins-dir/test-jenkins-sub-dir/test-sub-sub-dir/devlake#11,SUCCESS,OTHER,,1312,2021-03-09T13:35:10.000+00:00,2021-03-09T13:57:02.274+00:00,,jenkins:JenkinsJob:1:Test-jenkins-dir/test-jenkins-sub-dir/test-sub-sub-dir/devlake,"{""ConnectionId"":1,""FullName"":""Test-jenkins-dir/test-jenkins-sub-dir/test-sub-sub-dir/devlake""}",_raw_jenkins_api_stages,13578,
+jenkins:JenkinsStage:1:Test-jenkins-dir/test-jenkins-sub-dir/test-sub-sub-dir/devlake#12:1,gitlabAutoSync,jenkins:JenkinsBuild:1:Test-jenkins-dir/test-jenkins-sub-dir/test-sub-sub-dir/devlake#12,SUCCESS,DONE,DEPLOYMENT,14,2020-02-07T11:54:28.000+00:00,2020-02-07T11:54:42.118+00:00,PRODUCTION,jenkins:JenkinsJob:1:Test-jenkins-dir/test-jenkins-sub-dir/test-sub-sub-dir/devlake,"{""ConnectionId"":1,""FullName"":""Test-jenkins-dir/test-jenkins-sub-dir/test-sub-sub-dir/devlake""}",_raw_jenkins
[...]
+jenkins:JenkinsStage:1:Test-jenkins-dir/test-jenkins-sub-dir/test-sub-sub-dir/devlake#13:2,gitlabInit,jenkins:JenkinsBuild:1:Test-jenkins-dir/test-jenkins-sub-dir/test-sub-sub-dir/devlake#13,SUCCESS,OTHER,,5,2020-03-18T02:19:17.000+00:00,2020-03-18T02:19:22.859+00:00,,jenkins:JenkinsJob:1:Test-jenkins-dir/test-jenkins-sub-dir/test-sub-sub-dir/devlake,"{""ConnectionId"":1,""FullName"":""Test-jenkins-dir/test-jenkins-sub-dir/test-sub-sub-dir/devlake""}",_raw_jenkins_api_stages,13580,
+jenkins:JenkinsStage:1:Test-jenkins-dir/test-jenkins-sub-dir/test-sub-sub-dir/devlake#14:3,gitlabAutoSync,jenkins:JenkinsBuild:1:Test-jenkins-dir/test-jenkins-sub-dir/test-sub-sub-dir/devlake#14,SUCCESS,DONE,DEPLOYMENT,83,2020-03-12T02:45:25.000+00:00,2020-03-12T02:46:48.641+00:00,PRODUCTION,jenkins:JenkinsJob:1:Test-jenkins-dir/test-jenkins-sub-dir/test-sub-sub-dir/devlake,"{""ConnectionId"":1,""FullName"":""Test-jenkins-dir/test-jenkins-sub-dir/test-sub-sub-dir/devlake""}",_raw_jenkins
[...]
+jenkins:JenkinsStage:1:Test-jenkins-dir/test-jenkins-sub-dir/test-sub-sub-dir/devlake#1:6,Hello,jenkins:JenkinsBuild:1:Test-jenkins-dir/test-jenkins-sub-dir/test-sub-sub-dir/devlake#1,SUCCESS,DONE,,0,2022-09-08T15:40:34.000+00:00,2022-09-08T15:40:34.079+00:00,,jenkins:JenkinsJob:1:Test-jenkins-dir/test-jenkins-sub-dir/test-sub-sub-dir/devlake,"{""ConnectionId"":1,""FullName"":""Test-jenkins-dir/test-jenkins-sub-dir/test-sub-sub-dir/devlake""}",_raw_jenkins_api_stages,1,
+jenkins:JenkinsStage:1:Test-jenkins-dir/test-jenkins-sub-dir/test-sub-sub-dir/devlake#2:7,Hello,jenkins:JenkinsBuild:1:Test-jenkins-dir/test-jenkins-sub-dir/test-sub-sub-dir/devlake#2,SUCCESS,DONE,,0,2022-09-08T15:40:49.000+00:00,2022-09-08T15:40:49.122+00:00,,jenkins:JenkinsJob:1:Test-jenkins-dir/test-jenkins-sub-dir/test-sub-sub-dir/devlake,"{""ConnectionId"":1,""FullName"":""Test-jenkins-dir/test-jenkins-sub-dir/test-sub-sub-dir/devlake""}",_raw_jenkins_api_stages,2,
+jenkins:JenkinsStage:1:Test-jenkins-dir/test-jenkins-sub-dir/test-sub-sub-dir/devlake#3:8,Hello,jenkins:JenkinsBuild:1:Test-jenkins-dir/test-jenkins-sub-dir/test-sub-sub-dir/devlake#3,SUCCESS,DONE,,0,2022-09-08T15:40:49.000+00:00,2022-09-08T15:40:49.122+00:00,,jenkins:JenkinsJob:1:Test-jenkins-dir/test-jenkins-sub-dir/test-sub-sub-dir/devlake,"{""ConnectionId"":1,""FullName"":""Test-jenkins-dir/test-jenkins-sub-dir/test-sub-sub-dir/devlake""}",_raw_jenkins_api_stages,3,
+jenkins:JenkinsStage:1:Test-jenkins-dir/test-jenkins-sub-dir/test-sub-sub-dir/devlake#4:9,Hello,jenkins:JenkinsBuild:1:Test-jenkins-dir/test-jenkins-sub-dir/test-sub-sub-dir/devlake#4,SUCCESS,DONE,,0,2022-09-08T15:40:17.000+00:00,2022-09-08T15:40:17.258+00:00,,jenkins:JenkinsJob:1:Test-jenkins-dir/test-jenkins-sub-dir/test-sub-sub-dir/devlake,"{""ConnectionId"":1,""FullName"":""Test-jenkins-dir/test-jenkins-sub-dir/test-sub-sub-dir/devlake""}",_raw_jenkins_api_stages,4,
+jenkins:JenkinsStage:1:Test-jenkins-dir/test-jenkins-sub-dir/test-sub-sub-dir/devlake#5:10,Hello,jenkins:JenkinsBuild:1:Test-jenkins-dir/test-jenkins-sub-dir/test-sub-sub-dir/devlake#5,SUCCESS,DONE,,0,2022-09-08T15:40:17.000+00:00,2022-09-08T15:40:17.258+00:00,,jenkins:JenkinsJob:1:Test-jenkins-dir/test-jenkins-sub-dir/test-sub-sub-dir/devlake,"{""ConnectionId"":1,""FullName"":""Test-jenkins-dir/test-jenkins-sub-dir/test-sub-sub-dir/devlake""}",_raw_jenkins_api_stages,5,
+jenkins:JenkinsStage:1:Test-jenkins-dir/test-jenkins-sub-dir/test-sub-sub-dir/devlake#6:11,Hello,jenkins:JenkinsBuild:1:Test-jenkins-dir/test-jenkins-sub-dir/test-sub-sub-dir/devlake#6,SUCCESS,DONE,,0,2022-09-08T15:40:34.000+00:00,2022-09-08T15:40:34.079+00:00,,jenkins:JenkinsJob:1:Test-jenkins-dir/test-jenkins-sub-dir/test-sub-sub-dir/devlake,"{""ConnectionId"":1,""FullName"":""Test-jenkins-dir/test-jenkins-sub-dir/test-sub-sub-dir/devlake""}",_raw_jenkins_api_stages,6,
+jenkins:JenkinsStage:1:Test-jenkins-dir/test-jenkins-sub-dir/test-sub-sub-dir/devlake#7:12,gitlabInit,jenkins:JenkinsBuild:1:Test-jenkins-dir/test-jenkins-sub-dir/test-sub-sub-dir/devlake#7,SUCCESS,OTHER,,0,2020-03-04T13:47:24.000+00:00,2020-03-04T13:47:24.588+00:00,,jenkins:JenkinsJob:1:Test-jenkins-dir/test-jenkins-sub-dir/test-sub-sub-dir/devlake,"{""ConnectionId"":1,""FullName"":""Test-jenkins-dir/test-jenkins-sub-dir/test-sub-sub-dir/devlake""}",_raw_jenkins_api_stages,13574,
+jenkins:JenkinsStage:1:Test-jenkins-dir/test-jenkins-sub-dir/test-sub-sub-dir/devlake#8:6,gitlabInit,jenkins:JenkinsBuild:1:Test-jenkins-dir/test-jenkins-sub-dir/test-sub-sub-dir/devlake#8,SUCCESS,OTHER,,215,2020-03-17T15:27:15.000+00:00,2020-03-17T15:30:50.100+00:00,,jenkins:JenkinsJob:1:Test-jenkins-dir/test-jenkins-sub-dir/test-sub-sub-dir/devlake,"{""ConnectionId"":1,""FullName"":""Test-jenkins-dir/test-jenkins-sub-dir/test-sub-sub-dir/devlake""}",_raw_jenkins_api_stages,13575,
+jenkins:JenkinsStage:1:Test-jenkins-dir/test-jenkins-sub-dir/test-sub-sub-dir/devlake#9:7,gitlabInit,jenkins:JenkinsBuild:1:Test-jenkins-dir/test-jenkins-sub-dir/test-sub-sub-dir/devlake#9,SUCCESS,OTHER,,5,2020-03-18T02:19:17.000+00:00,2020-03-18T02:19:22.859+00:00,,jenkins:JenkinsJob:1:Test-jenkins-dir/test-jenkins-sub-dir/test-sub-sub-dir/devlake,"{""ConnectionId"":1,""FullName"":""Test-jenkins-dir/test-jenkins-sub-dir/test-sub-sub-dir/devlake""}",_raw_jenkins_api_stages,13576,
diff --git a/backend/plugins/jenkins/tasks/build_cicd_convertor.go
b/backend/plugins/jenkins/tasks/build_cicd_convertor.go
index add8e510f..485814d3e 100644
--- a/backend/plugins/jenkins/tasks/build_cicd_convertor.go
+++ b/backend/plugins/jenkins/tasks/build_cicd_convertor.go
@@ -70,7 +70,14 @@ func ConvertBuildsToCicdTasks(taskCtx plugin.SubTaskContext)
(err errors.Error)
},
Convert: func(inputRow interface{}) ([]interface{},
errors.Error) {
jenkinsBuild := inputRow.(*models.JenkinsBuild)
- durationSec := int64(jenkinsBuild.Duration / 1000)
+ var durationMillis float64
+ if jenkinsBuild.Duration > 0 {
+ durationMillis = jenkinsBuild.Duration
+ } else {
+ durationMillis = 0
+ }
+ durationSec := durationMillis / 1e3
+
jenkinsPipelineStatus :=
devops.GetStatusCommon(&devops.StatusRuleCommon[bool]{
InProgress: []bool{true},
Done: []bool{false},
@@ -88,7 +95,7 @@ func ConvertBuildsToCicdTasks(taskCtx plugin.SubTaskContext)
(err errors.Error)
results := make([]interface{}, 0)
if jenkinsPipelineStatus == devops.STATUS_DONE {
- finishTime :=
jenkinsBuild.StartTime.Add(time.Duration(durationSec * int64(time.Second)))
+ finishTime :=
jenkinsBuild.StartTime.Add(time.Duration(int64(durationMillis) *
int64(time.Millisecond)))
jenkinsPipelineFinishedDate = &finishTime
}
jenkinsPipeline := &devops.CICDPipeline{
@@ -99,7 +106,7 @@ func ConvertBuildsToCicdTasks(taskCtx plugin.SubTaskContext)
(err errors.Error)
Result: jenkinsPipelineResult,
Status: jenkinsPipelineStatus,
FinishedDate: jenkinsPipelineFinishedDate,
- DurationSec: uint64(durationSec),
+ DurationSec: durationSec,
CreatedDate: jenkinsBuild.StartTime,
CicdScopeId:
jobIdGen.Generate(jenkinsBuild.ConnectionId, data.Options.JobFullName),
Type:
data.RegexEnricher.ReturnNameIfMatched(devops.DEPLOYMENT,
jenkinsBuild.FullName),
@@ -116,7 +123,7 @@ func ConvertBuildsToCicdTasks(taskCtx
plugin.SubTaskContext) (err errors.Error)
Name: data.Options.JobFullName,
Result: jenkinsPipelineResult,
Status: jenkinsPipelineStatus,
- DurationSec: uint64(durationSec),
+ DurationSec: durationSec,
StartedDate: jenkinsBuild.StartTime,
FinishedDate:
jenkinsPipelineFinishedDate,
CicdScopeId:
jobIdGen.Generate(jenkinsBuild.ConnectionId, data.Options.JobFullName),
diff --git a/backend/plugins/jenkins/tasks/stage_convertor.go
b/backend/plugins/jenkins/tasks/stage_convertor.go
index 76d7a0332..bb439e7b3 100644
--- a/backend/plugins/jenkins/tasks/stage_convertor.go
+++ b/backend/plugins/jenkins/tasks/stage_convertor.go
@@ -99,14 +99,13 @@ func ConvertStages(taskCtx plugin.SubTaskContext) (err
errors.Error) {
if body.Name == "" {
return nil, err
}
- var durationMillis int
+ var durationMillis int64
if body.DurationMillis > 0 {
- durationMillis = body.DurationMillis
+ durationMillis = int64(body.DurationMillis)
} else {
- durationMillis = 0
+ durationMillis = int64(0)
}
-
- durationSec := int64(durationMillis / 1000)
+ durationSec := float64(durationMillis / 1e3)
jenkinsTaskResult :=
devops.GetResult(&devops.ResultRule{
Success: []string{SUCCESS},
Failure: []string{FAILED, FAILURE, ABORTED},
@@ -122,7 +121,7 @@ func ConvertStages(taskCtx plugin.SubTaskContext) (err
errors.Error) {
var jenkinsTaskFinishedDate *time.Time
results := make([]interface{}, 0)
startedDate := time.Unix(body.StartTimeMillis/1000, 0)
- finishedDate :=
startedDate.Add(time.Duration(durationSec * int64(time.Second)))
+ finishedDate :=
startedDate.Add(time.Duration(durationMillis * int64(time.Millisecond)))
jenkinsTaskFinishedDate = &finishedDate
jenkinsTask := &devops.CICDTask{
DomainEntity: domainlayer.DomainEntity{
@@ -132,7 +131,7 @@ func ConvertStages(taskCtx plugin.SubTaskContext) (err
errors.Error) {
PipelineId:
buildIdGen.Generate(body.ConnectionId, body.BuildName),
Result: jenkinsTaskResult,
Status: jenkinsTaskStatus,
- DurationSec: uint64(durationMillis / 1000),
+ DurationSec: durationSec,
StartedDate: startedDate,
FinishedDate: jenkinsTaskFinishedDate,
CicdScopeId:
jobIdGen.Generate(body.ConnectionId, data.Options.JobFullName),
diff --git a/backend/plugins/webhook/api/deployments.go
b/backend/plugins/webhook/api/deployments.go
index 67752c72c..bb60ffcd3 100644
--- a/backend/plugins/webhook/api/deployments.go
+++ b/backend/plugins/webhook/api/deployments.go
@@ -21,6 +21,7 @@ import (
"crypto/md5"
"fmt"
"github.com/apache/incubator-devlake/helpers/dbhelper"
+ "github.com/go-playground/validator/v10"
"net/http"
"time"
@@ -30,8 +31,6 @@ import (
"github.com/apache/incubator-devlake/core/plugin"
"github.com/apache/incubator-devlake/helpers/pluginhelper/api"
"github.com/apache/incubator-devlake/plugins/webhook/models"
-
- "github.com/go-playground/validator/v10"
)
type WebhookDeployTaskRequest struct {
@@ -105,7 +104,7 @@ func PostDeploymentCicdTask(input *plugin.ApiResourceInput)
(*plugin.ApiResource
if request.Result == "" {
request.Result = devops.RESULT_SUCCESS
}
- duration :=
uint64(request.FinishedDate.Sub(*request.StartedDate).Seconds())
+ duration := request.FinishedDate.Sub(*request.StartedDate).Seconds()
// create a deployment_commit record
deploymentCommit := &devops.CicdDeploymentCommit{