You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@devlake.apache.org by li...@apache.org on 2022/11/18 09:08:49 UTC

[incubator-devlake] branch release-v0.14 updated: fix(jenkins): additional process to avoid panic (#3758)

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

likyh pushed a commit to branch release-v0.14
in repository https://gitbox.apache.org/repos/asf/incubator-devlake.git


The following commit(s) were added to refs/heads/release-v0.14 by this push:
     new bb93ae163 fix(jenkins): additional process to avoid panic (#3758)
bb93ae163 is described below

commit bb93ae163e4b763ed54033155adbb5bc7a600692
Author: Warren Chen <yi...@merico.dev>
AuthorDate: Fri Nov 18 17:08:44 2022 +0800

    fix(jenkins): additional process to avoid panic (#3758)
---
 plugins/jenkins/e2e/builds_test.go                 | 15 ++++-
 .../e2e/raw_tables/_raw_jenkins_api_builds.csv     |  6 ++
 .../e2e/raw_tables/_raw_jenkins_api_jobs.csv       |  2 +
 .../e2e/raw_tables/_raw_jenkins_api_stages.csv     | 35 +++++-----
 .../e2e/raw_tables/_tool_jenkins_stages.csv        | 19 ++++++
 .../_tool_jenkins_build_commits.csv                |  1 +
 .../e2e/snapshot_tables/_tool_jenkins_builds.csv   | 77 +++++++++++-----------
 .../_tool_jenkins_builds_after_enrich.csv          | 39 +++++++++++
 .../e2e/snapshot_tables/_tool_jenkins_stages.csv   | 15 ++++-
 .../e2e/snapshot_tables/cicd_pipeline_commits.csv  |  1 +
 .../jenkins/e2e/snapshot_tables/cicd_pipelines.csv |  1 +
 plugins/jenkins/e2e/snapshot_tables/cicd_tasks.csv |  5 --
 .../snapshot_tables/cicd_tasks_after_stages.csv    |  3 +
 plugins/jenkins/tasks/build_stages_enricher.go     | 18 ++---
 14 files changed, 163 insertions(+), 74 deletions(-)

diff --git a/plugins/jenkins/e2e/builds_test.go b/plugins/jenkins/e2e/builds_test.go
index bd6fb6628..84178a8ee 100644
--- a/plugins/jenkins/e2e/builds_test.go
+++ b/plugins/jenkins/e2e/builds_test.go
@@ -46,6 +46,7 @@ func TestJenkinsBuildsDataFlow(t *testing.T) {
 	dataflowTester.FlushTabler(&models.JenkinsBuild{})
 	dataflowTester.FlushTabler(&models.JenkinsBuildCommit{})
 	dataflowTester.FlushTabler(&models.JenkinsStage{})
+	dataflowTester.ImportCsvIntoTabler("./raw_tables/_tool_jenkins_stages.csv", &models.JenkinsStage{})
 
 	dataflowTester.Subtask(tasks.ExtractApiBuildsMeta, taskData)
 	dataflowTester.VerifyTable(
@@ -61,6 +62,7 @@ func TestJenkinsBuildsDataFlow(t *testing.T) {
 			"result",
 			"timestamp",
 			"start_time",
+			"has_stages",
 			"_raw_data_params",
 			"_raw_data_table",
 			"_raw_data_id",
@@ -87,8 +89,19 @@ func TestJenkinsBuildsDataFlow(t *testing.T) {
 	dataflowTester.FlushTabler(&devops.CICDTask{})
 	dataflowTester.FlushTabler(&devops.CICDPipeline{})
 	dataflowTester.FlushTabler(&devops.CiCDPipelineCommit{})
-	dataflowTester.FlushTabler(&devops.CICDPipelineRelationship{})
 	dataflowTester.Subtask(tasks.EnrichApiBuildWithStagesMeta, taskData)
+	dataflowTester.VerifyTable(
+		models.JenkinsBuild{},
+		"./snapshot_tables/_tool_jenkins_builds_after_enrich.csv",
+		[]string{
+			"connection_id",
+			"job_name",
+			"duration",
+			"full_display_name",
+			"has_stages",
+		},
+	)
+
 	dataflowTester.Subtask(tasks.ConvertBuildsToCICDMeta, taskData)
 	dataflowTester.Subtask(tasks.ConvertBuildReposMeta, taskData)
 
diff --git a/plugins/jenkins/e2e/raw_tables/_raw_jenkins_api_builds.csv b/plugins/jenkins/e2e/raw_tables/_raw_jenkins_api_builds.csv
index 8802295af..b1f627e48 100644
--- a/plugins/jenkins/e2e/raw_tables/_raw_jenkins_api_builds.csv
+++ b/plugins/jenkins/e2e/raw_tables/_raw_jenkins_api_builds.csv
@@ -6,6 +6,7 @@
 92,"{""ConnectionId"":1}","{""_class"":""hudson.model.FreeStyleBuild"",""actions"":[{""_class"":""hudson.model.CauseAction"",""causes"":[{""_class"":""hudson.model.Cause$UserIdCause"",""shortDescription"":""Started by user 思码逸"",""userId"":""merico"",""userName"":""思码逸""}]},{""_class"":""hudson.plugins.git.util.BuildData"",""lastBuiltRevision"":{""SHA1"":""20139afef3c6ec9f3ebffcb06e243b145cbef8c6"",""branch"":[{""name"":""refs/remotes/origin/main""}]},""remoteUrls"":[""https://github.com [...]
 93,"{""ConnectionId"":1}","{""_class"":""hudson.model.FreeStyleBuild"",""actions"":[{""_class"":""hudson.model.CauseAction"",""causes"":[{""_class"":""hudson.model.Cause$UserIdCause"",""shortDescription"":""Started by user 思码逸"",""userId"":""merico"",""userName"":""思码逸""}]},{""_class"":""hudson.plugins.git.util.BuildData"",""lastBuiltRevision"":{""SHA1"":""0f886c74949c3ee7e489188911c7dc0c1d547418"",""branch"":[{""name"":""refs/remotes/origin/main""}]},""remoteUrls"":[""https://github.com [...]
 94,"{""ConnectionId"":1}","{""_class"":""hudson.model.FreeStyleBuild"",""actions"":[{""_class"":""hudson.model.CauseAction"",""causes"":[{""_class"":""hudson.model.Cause$UserIdCause"",""shortDescription"":""Started by user 思码逸"",""userId"":""merico"",""userName"":""思码逸""}]},{""_class"":""hudson.plugins.git.util.BuildData"",""lastBuiltRevision"":{""SHA1"":""0f886c74949c3ee7e489188911c7dc0c1d547418"",""branch"":[{""name"":""refs/remotes/origin/main""}]},""remoteUrls"":[""https://github.com [...]
+994,"{""ConnectionId"":1}","{""_class"":""hudson.model.FreeStyleBuild"",""actions"":[{""_class"":""hudson.model.CauseAction"",""causes"":[{""_class"":""hudson.model.Cause$UserIdCause"",""shortDescription"":""Started by user 思码逸"",""userId"":""merico"",""userName"":""思码逸""}]},{""_class"":""hudson.plugins.git.util.BuildData"",""lastBuiltRevision"":{""SHA1"":""0f886c74949c3ee7e489188911c7dc0c1d547418"",""branch"":[{""name"":""refs/remotes/origin/main""}]},""remoteUrls"":[""https://github.co [...]
 95,"{""ConnectionId"":1}","{""_class"":""hudson.model.FreeStyleBuild"",""actions"":[{""_class"":""hudson.model.CauseAction"",""causes"":[{""_class"":""hudson.model.Cause$UserIdCause"",""shortDescription"":""Started by user 思码逸"",""userId"":""merico"",""userName"":""思码逸""}]},{""_class"":""hudson.plugins.git.util.BuildData"",""lastBuiltRevision"":{""SHA1"":""ceeffdfdd06bce232f9adb3a656265bad13a8473"",""branch"":[{""name"":""refs/remotes/origin/main""}]},""remoteUrls"":[""https://github.com [...]
 96,"{""ConnectionId"":1}","{""_class"":""org.jenkinsci.plugins.workflow.job.WorkflowRun"",""actions"":[{""_class"":""hudson.model.CauseAction"",""causes"":[{""_class"":""hudson.model.Cause$UserIdCause"",""shortDescription"":""Started by user 思码逸"",""userId"":""merico"",""userName"":""思码逸""}]},{""_class"":""org.jenkinsci.plugins.workflow.libs.LibrariesAction""},{},{},{""_class"":""org.jenkinsci.plugins.displayurlapi.actions.RunDisplayAction""},{""_class"":""org.jenkinsci.plugins.pipeline. [...]
 97,"{""ConnectionId"":1}","{""_class"":""org.jenkinsci.plugins.workflow.job.WorkflowRun"",""actions"":[{""_class"":""hudson.model.CauseAction"",""causes"":[{""_class"":""hudson.model.Cause$UserIdCause"",""shortDescription"":""Started by user 思码逸"",""userId"":""merico"",""userName"":""思码逸""}]},{""_class"":""org.jenkinsci.plugins.workflow.libs.LibrariesAction""},{},{},{""_class"":""org.jenkinsci.plugins.displayurlapi.actions.RunDisplayAction""},{""_class"":""org.jenkinsci.plugins.pipeline. [...]
@@ -36,3 +37,8 @@
 122,"{""ConnectionId"":1}","{""_class"":""hudson.model.FreeStyleBuild"",""actions"":[{""_class"":""hudson.model.CauseAction"",""causes"":[{""_class"":""hudson.model.Cause$UserIdCause"",""shortDescription"":""Started by user 思码逸"",""userId"":""merico"",""userName"":""思码逸""}]},{},{""_class"":""org.jenkinsci.plugins.displayurlapi.actions.RunDisplayAction""}],""duration"":3,""estimatedDuration"":6,""fullDisplayName"":""这是一个改了名字的测试任务 #3"",""number"":3,""result"":""SUCCESS"",""timestamp"":1650 [...]
 123,"{""ConnectionId"":1}","{""_class"":""hudson.model.FreeStyleBuild"",""actions"":[{""_class"":""hudson.model.CauseAction"",""causes"":[{""_class"":""hudson.model.Cause$UserIdCause"",""shortDescription"":""Started by user 思码逸"",""userId"":""merico"",""userName"":""思码逸""}]},{},{""_class"":""org.jenkinsci.plugins.displayurlapi.actions.RunDisplayAction""}],""duration"":4,""estimatedDuration"":6,""fullDisplayName"":""这是一个改了名字的测试任务 #2"",""number"":2,""result"":""SUCCESS"",""timestamp"":1650 [...]
 124,"{""ConnectionId"":1}","{""_class"":""hudson.model.FreeStyleBuild"",""actions"":[{""_class"":""hudson.model.CauseAction"",""causes"":[{""_class"":""hudson.model.Cause$UserIdCause"",""shortDescription"":""Started by user 思码逸"",""userId"":""merico"",""userName"":""思码逸""}]},{},{""_class"":""org.jenkinsci.plugins.displayurlapi.actions.RunDisplayAction""}],""duration"":57,""estimatedDuration"":6,""fullDisplayName"":""这是一个改了名字的测试任务 #1"",""number"":1,""result"":""SUCCESS"",""timestamp"":165 [...]
+125,"{""ConnectionId"":2}","{""_class"":""hudson.model.FreeStyleBuild"",""actions"":[{""_class"":""hudson.model.CauseAction"",""causes"":[{""_class"":""hudson.model.Cause$UserIdCause"",""shortDescription"":""Started by user 思码逸"",""userId"":""merico"",""userName"":""思码逸""}]},{},{""_class"":""org.jenkinsci.plugins.displayurlapi.actions.RunDisplayAction""}],""duration"":8,""estimatedDuration"":6,""fullDisplayName"":""这是一个改了名字的测试任务 #7"",""number"":7,""result"":""SUCCESS"",""timestamp"":1650 [...]
+126,"{""ConnectionId"":3}","{""_class"":""hudson.model.FreeStyleBuild"",""actions"":[{""_class"":""hudson.model.CauseAction"",""causes"":[{""_class"":""hudson.model.Cause$UserIdCause"",""shortDescription"":""Started by user 思码逸"",""userId"":""merico"",""userName"":""思码逸""}]},{},{""_class"":""org.jenkinsci.plugins.displayurlapi.actions.RunDisplayAction""}],""duration"":10,""estimatedDuration"":6,""fullDisplayName"":""这是一个改了名字的测试任务 #6"",""number"":6,""result"":""SUCCESS"",""timestamp"":165 [...]
+127,"{""ConnectionId"":2}","{""_class"":""hudson.model.FreeStyleBuild"",""actions"":[{""_class"":""hudson.model.CauseAction"",""causes"":[{""_class"":""hudson.model.Cause$UserIdCause"",""shortDescription"":""Started by user 思码逸"",""userId"":""merico"",""userName"":""思码逸""}]},{},{""_class"":""org.jenkinsci.plugins.displayurlapi.actions.RunDisplayAction""}],""duration"":6,""estimatedDuration"":6,""fullDisplayName"":""这是一个改了名字的测试任务 #5"",""number"":5,""result"":""SUCCESS"",""timestamp"":1650 [...]
+128,"{""ConnectionId"":3}","{""_class"":""hudson.model.FreeStyleBuild"",""actions"":[{""_class"":""hudson.model.CauseAction"",""causes"":[{""_class"":""hudson.model.Cause$UserIdCause"",""shortDescription"":""Started by user 思码逸"",""userId"":""merico"",""userName"":""思码逸""}]},{},{""_class"":""org.jenkinsci.plugins.displayurlapi.actions.RunDisplayAction""}],""duration"":6,""estimatedDuration"":6,""fullDisplayName"":""这是一个改了名字的测试任务 #4"",""number"":4,""result"":""SUCCESS"",""timestamp"":1650 [...]
+129,"{""ConnectionId"":4}","{""_class"":""hudson.model.FreeStyleBuild"",""actions"":[{""_class"":""hudson.model.CauseAction"",""causes"":[{""_class"":""hudson.model.Cause$UserIdCause"",""shortDescription"":""Started by user 思码逸"",""userId"":""merico"",""userName"":""思码逸""}]},{},{""_class"":""org.jenkinsci.plugins.displayurlapi.actions.RunDisplayAction""}],""duration"":3,""estimatedDuration"":6,""fullDisplayName"":""这是一个改了名字的测试任务 #3"",""number"":3,""result"":""SUCCESS"",""timestamp"":1650 [...]
diff --git a/plugins/jenkins/e2e/raw_tables/_raw_jenkins_api_jobs.csv b/plugins/jenkins/e2e/raw_tables/_raw_jenkins_api_jobs.csv
index bdd7ef053..c38969c3e 100644
--- a/plugins/jenkins/e2e/raw_tables/_raw_jenkins_api_jobs.csv
+++ b/plugins/jenkins/e2e/raw_tables/_raw_jenkins_api_jobs.csv
@@ -9,3 +9,5 @@
 35,"{""ConnectionId"":1}","{""_class"":""hudson.model.FreeStyleProject"",""name"":""testfile"",""url"":""https://test.nddtf.com/job/dir-test/job/testfile/"",""color"":""blue"",""upstreamProjects"":[]}","https://test.nddtf.com/job/dir-test/api/json?tree=jobs%5Bname%2Cclass%2Curl%2Ccolor%2Cbase%2Cjobs%2CupstreamProjects%5Bname%5D%5D%7B0%2C100%7D","{""Path"": ""job/dir-test/""}","2022-09-08 15:41:07.052"
 36,"{""ConnectionId"":1}","{""_class"":""hudson.model.FreeStyleProject"",""name"":""free"",""url"":""https://test.nddtf.com/job/dir-test/job/dir-test-2/job/free/"",""color"":""blue"",""upstreamProjects"":[]}","https://test.nddtf.com/job/dir-test/job/dir-test-2/api/json?tree=jobs%5Bname%2Cclass%2Curl%2Ccolor%2Cbase%2Cjobs%2CupstreamProjects%5Bname%5D%5D%7B0%2C100%7D","{""Path"": ""job/dir-test/job/dir-test-2/""}","2022-09-08 15:41:07.368"
 37,"{""ConnectionId"":1}","{""_class"":""hudson.model.FreeStyleProject"",""name"":""free1"",""url"":""https://test.nddtf.com/job/dir-test/job/dir-test-2/job/free1/"",""color"":""blue"",""upstreamProjects"":[]}","https://test.nddtf.com/job/dir-test/job/dir-test-2/api/json?tree=jobs%5Bname%2Cclass%2Curl%2Ccolor%2Cbase%2Cjobs%2CupstreamProjects%5Bname%5D%5D%7B0%2C100%7D","{""Path"": ""job/dir-test/job/dir-test-2/""}","2022-09-08 15:41:07.368"
+38,"{""ConnectionId"":2}","{""_class"":""hudson.model.FreeStyleProject"",""name"":""free"",""url"":""https://test.nddtf.com/job/dir-test/job/dir-test-2/job/free/"",""color"":""blue"",""upstreamProjects"":[]}","https://test.nddtf.com/job/dir-test/job/dir-test-2/api/json?tree=jobs%5Bname%2Cclass%2Curl%2Ccolor%2Cbase%2Cjobs%2CupstreamProjects%5Bname%5D%5D%7B0%2C100%7D","{""Path"": ""job/dir-test/job/dir-test-2/""}","2022-09-08 15:41:07.368"
+39,"{""ConnectionId"":3}","{""_class"":""hudson.model.FreeStyleProject"",""name"":""free1"",""url"":""https://test.nddtf.com/job/dir-test/job/dir-test-2/job/free1/"",""color"":""blue"",""upstreamProjects"":[]}","https://test.nddtf.com/job/dir-test/job/dir-test-2/api/json?tree=jobs%5Bname%2Cclass%2Curl%2Ccolor%2Cbase%2Cjobs%2CupstreamProjects%5Bname%5D%5D%7B0%2C100%7D","{""Path"": ""job/dir-test/job/dir-test-2/""}","2022-09-08 15:41:07.368"
diff --git a/plugins/jenkins/e2e/raw_tables/_raw_jenkins_api_stages.csv b/plugins/jenkins/e2e/raw_tables/_raw_jenkins_api_stages.csv
index e0931a2c9..1595ba1ef 100644
--- a/plugins/jenkins/e2e/raw_tables/_raw_jenkins_api_stages.csv
+++ b/plugins/jenkins/e2e/raw_tables/_raw_jenkins_api_stages.csv
@@ -1,17 +1,20 @@
 "id","params","data","url","input","created_at"
-1,"{""ConnectionId"":1}","{""_links"":{""self"":{""href"":""/job/pipeline-test2/2/execution/node/6/wfapi/describe""}},""id"":""6"",""name"":""Hello"",""execNode"":"""",""status"":""SUCCESS"",""startTimeMillis"":1662651634424,""durationMillis"":79,""pauseDurationMillis"":0}","https://test.nddtf.com/job/pipeline-test2/2/wfapi/describe","{""Path"": """", ""Number"": ""2"", ""JobName"": ""pipeline-test2"", ""DisplayName"": ""pipeline-test2 #2""}","2022-09-09 08:39:47.763"
-2,"{""ConnectionId"":1}","{""_links"":{""self"":{""href"":""/job/pipeline-test2/3/execution/node/6/wfapi/describe""}},""id"":""6"",""name"":""Hello"",""execNode"":"""",""status"":""SUCCESS"",""startTimeMillis"":1662651649629,""durationMillis"":122,""pauseDurationMillis"":0}","https://test.nddtf.com/job/pipeline-test2/3/wfapi/describe","{""Path"": """", ""Number"": ""3"", ""JobName"": ""pipeline-test2"", ""DisplayName"": ""pipeline-test2 #3""}","2022-09-09 08:39:47.858"
-3,"{""ConnectionId"":1}","{""_links"":{""self"":{""href"":""/job/pipeline-test2/3/execution/node/6/wfapi/describe""}},""id"":""6"",""name"":""Hello"",""execNode"":"""",""status"":""SUCCESS"",""startTimeMillis"":1662651649629,""durationMillis"":122,""pauseDurationMillis"":0}","https://test.nddtf.com/job/pipeline-test2/3/wfapi/describe","{""Path"": """", ""Number"": ""3"", ""JobName"": ""pipeline-test2"", ""DisplayName"": ""pipeline-test2 #3""}","2022-09-09 08:39:48.187"
-4,"{""ConnectionId"":1}","{""_links"":{""self"":{""href"":""/job/pipeline-test2/1/execution/node/6/wfapi/describe""}},""id"":""6"",""name"":""Hello"",""execNode"":"""",""status"":""SUCCESS"",""startTimeMillis"":1662651617917,""durationMillis"":258,""pauseDurationMillis"":0}","https://test.nddtf.com/job/pipeline-test2/1/wfapi/describe","{""Path"": """", ""Number"": ""1"", ""JobName"": ""pipeline-test2"", ""DisplayName"": ""pipeline-test2 #1""}","2022-09-09 08:39:51.793"
-5,"{""ConnectionId"":1}","{""_links"":{""self"":{""href"":""/job/pipeline-test2/1/execution/node/6/wfapi/describe""}},""id"":""6"",""name"":""Hello"",""execNode"":"""",""status"":""SUCCESS"",""startTimeMillis"":1662651617917,""durationMillis"":258,""pauseDurationMillis"":0}","https://test.nddtf.com/job/pipeline-test2/1/wfapi/describe","{""Path"": """", ""Number"": ""1"", ""JobName"": ""pipeline-test2"", ""DisplayName"": ""pipeline-test2 #1""}","2022-09-09 08:39:52.153"
-6,"{""ConnectionId"":1}","{""_links"":{""self"":{""href"":""/job/pipeline-test2/2/execution/node/6/wfapi/describe""}},""id"":""6"",""name"":""Hello"",""execNode"":"""",""status"":""SUCCESS"",""startTimeMillis"":1662651634424,""durationMillis"":79,""pauseDurationMillis"":0}","https://test.nddtf.com/job/pipeline-test2/2/wfapi/describe","{""Path"": """", ""Number"": ""2"", ""JobName"": ""pipeline-test2"", ""DisplayName"": ""pipeline-test2 #2""}","2022-09-09 08:39:52.510"
-13574,"{""ConnectionId"":1}","{""_links"":{""self"":{""href"":""/job/Auto%20Init%20Gitlab/1/execution/node/6/wfapi/describe""}},""id"":""6"",""name"":""gitlabInit"",""execNode"":"""",""status"":""FAILED"",""error"":{""message"":""script returned exit code 1"",""type"":""hudson.AbortException""},""startTimeMillis"":1583329644046,""durationMillis"":588,""pauseDurationMillis"":0}",https://jenkins.merico.cn/job/Auto%20Init%20Gitlab/1/wfapi/describe,"{""Number"": ""1"", ""JobName"": ""Auto In [...]
-13575,"{""ConnectionId"":1}","{""_links"":{""self"":{""href"":""/job/Auto%20Init%20Gitlab/18/execution/node/6/wfapi/describe""}},""id"":""6"",""name"":""gitlabInit"",""execNode"":"""",""status"":""FAILED"",""error"":{""message"":""script returned exit code 137"",""type"":""hudson.AbortException""},""startTimeMillis"":1584458835920,""durationMillis"":215100,""pauseDurationMillis"":0}",https://jenkins.merico.cn/job/Auto%20Init%20Gitlab/18/wfapi/describe,"{""Number"": ""18"", ""JobName"": " [...]
-13576,"{""ConnectionId"":1}","{""_links"":{""self"":{""href"":""/job/Auto%20Init%20Gitlab/19/execution/node/6/wfapi/describe""}},""id"":""6"",""name"":""gitlabInit"",""execNode"":"""",""status"":""ABORTED"",""error"":{""message"":null,""type"":""org.jenkinsci.plugins.workflow.steps.FlowInterruptedException""},""startTimeMillis"":1584497957140,""durationMillis"":5859,""pauseDurationMillis"":0}",https://jenkins.merico.cn/job/Auto%20Init%20Gitlab/19/wfapi/describe,"{""Number"": ""19"", ""Jo [...]
-13577,"{""ConnectionId"":1}","{""_links"":{""self"":{""href"":""/job/Pipeline%20expirement/5/execution/node/8/wfapi/describe""}},""id"":""8"",""name"":""scp-f/b"",""execNode"":"""",""status"":""FAILED"",""error"":{""message"":""script returned exit code 1"",""type"":""hudson.AbortException""},""startTimeMillis"":1572321694770,""durationMillis"":297,""pauseDurationMillis"":0}",https://jenkins.merico.cn/job/Pipeline%20expirement/5/wfapi/describe,"{""Number"": ""5"", ""JobName"": ""Pipeline [...]
-13578,"{""ConnectionId"":1}","{""_links"":{""self"":{""href"":""/job/Auto%20Init%20Gitlab/58/execution/node/6/wfapi/describe""}},""id"":""6"",""name"":""gitlabInit"",""execNode"":"""",""status"":""ABORTED"",""error"":{""message"":null,""type"":""org.jenkinsci.plugins.workflow.steps.FlowInterruptedException""},""startTimeMillis"":1615296910614,""durationMillis"":1312274,""pauseDurationMillis"":0}",https://jenkins.merico.cn/job/Auto%20Init%20Gitlab/58/wfapi/describe,"{""Number"": ""58"", " [...]
-13579,"{""ConnectionId"":1}","{""_links"":{""self"":{""href"":""/job/Test%20Gitlab%20Sync/3/execution/node/6/wfapi/describe""}},""id"":""6"",""name"":""gitlabAutoSync"",""execNode"":"""",""status"":""SUCCESS"",""startTimeMillis"":1581076468986,""durationMillis"":14118,""pauseDurationMillis"":0}",https://jenkins.merico.cn/job/Test%20Gitlab%20Sync/3/wfapi/describe,"{""Number"": ""3"", ""JobName"": ""Test Gitlab Sync"", ""DisplayName"": ""Test Gitlab Sync #3""}",2022-08-11 09:15:51.406
-13580,"{""ConnectionId"":1}","{""_links"":{""self"":{""href"":""/job/Auto%20Init%20Gitlab/19/execution/node/6/wfapi/describe""}},""id"":""6"",""name"":""gitlabInit"",""execNode"":"""",""status"":""ABORTED"",""error"":{""message"":null,""type"":""org.jenkinsci.plugins.workflow.steps.FlowInterruptedException""},""startTimeMillis"":1584497957140,""durationMillis"":5859,""pauseDurationMillis"":0}",https://jenkins.merico.cn/job/Auto%20Init%20Gitlab/19/wfapi/describe,"{""Number"": ""19"", ""Jo [...]
-13581,"{""ConnectionId"":1}","{""_links"":{""self"":{""href"":""/job/Test%20Gitlab%20Sync/12/execution/node/6/wfapi/describe""}},""id"":""6"",""name"":""gitlabAutoSync"",""execNode"":"""",""status"":""SUCCESS"",""startTimeMillis"":1583981125465,""durationMillis"":83641,""pauseDurationMillis"":0}",https://jenkins.merico.cn/job/Test%20Gitlab%20Sync/12/wfapi/describe,"{""Number"": ""12"", ""JobName"": ""Test Gitlab Sync"", ""DisplayName"": ""Test Gitlab Sync #12""}",2022-08-11 09:15:51.889
-13582,"{""ConnectionId"":1}","{""_links"":{""self"":{""href"":""/job/Auto%20Init%20Gitlab/23/execution/node/6/wfapi/describe""}},""id"":""6"",""name"":""gitlabInit"",""execNode"":"""",""status"":""ABORTED"",""error"":{""message"":null,""type"":""org.jenkinsci.plugins.workflow.steps.FlowInterruptedException""},""startTimeMillis"":1605767269680,""durationMillis"":248279,""pauseDurationMillis"":0}",https://jenkins.merico.cn/job/Auto%20Init%20Gitlab/23/wfapi/describe,"{""Number"": ""23"", "" [...]
-13583,"{""ConnectionId"":1}","{""_links"":{""self"":{""href"":""/job/Test%20Gitlab%20Sync/10/execution/node/6/wfapi/describe""}},""id"":""6"",""name"":""gitlabAutoSync"",""execNode"":"""",""status"":""SUCCESS"",""startTimeMillis"":1583981120136,""durationMillis"":86044,""pauseDurationMillis"":0}",https://jenkins.merico.cn/job/Test%20Gitlab%20Sync/10/wfapi/describe,"{""Number"": ""10"", ""JobName"": ""Test Gitlab Sync"", ""DisplayName"": ""Test Gitlab Sync #10""}",2022-08-11 09:15:52.210
+1,"{""ConnectionId"":1}","{""_links"":{""self"":{""href"":""/job/pipeline-test2/2/execution/node/6/wfapi/describe""}},""id"":""6"",""name"":""Hello"",""execNode"":"""",""status"":""SUCCESS"",""startTimeMillis"":1662651634424,""durationMillis"":79,""pauseDurationMillis"":0}","https://test.nddtf.com/job/pipeline-test2/2/wfapi/describe","{""Path"": """", ""Number"": ""2"", ""JobName"": ""pipeline-test2"", ""FullDisplayName"": ""pipeline-test2 #2""}","2022-09-09 08:39:47.763"
+2,"{""ConnectionId"":1}","{""_links"":{""self"":{""href"":""/job/pipeline-test2/3/execution/node/6/wfapi/describe""}},""id"":""6"",""name"":""Hello"",""execNode"":"""",""status"":""SUCCESS"",""startTimeMillis"":1662651649629,""durationMillis"":122,""pauseDurationMillis"":0}","https://test.nddtf.com/job/pipeline-test2/3/wfapi/describe","{""Path"": """", ""Number"": ""3"", ""JobName"": ""pipeline-test2"", ""FullDisplayName"": ""pipeline-test2 #3""}","2022-09-09 08:39:47.858"
+3,"{""ConnectionId"":1}","{""_links"":{""self"":{""href"":""/job/pipeline-test2/3/execution/node/6/wfapi/describe""}},""id"":""6"",""name"":""Hello"",""execNode"":"""",""status"":""SUCCESS"",""startTimeMillis"":1662651649629,""durationMillis"":122,""pauseDurationMillis"":0}","https://test.nddtf.com/job/pipeline-test2/3/wfapi/describe","{""Path"": """", ""Number"": ""3"", ""JobName"": ""pipeline-test2"", ""FullDisplayName"": ""pipeline-test2 #3""}","2022-09-09 08:39:48.187"
+4,"{""ConnectionId"":1}","{""_links"":{""self"":{""href"":""/job/pipeline-test2/1/execution/node/6/wfapi/describe""}},""id"":""6"",""name"":""Hello"",""execNode"":"""",""status"":""SUCCESS"",""startTimeMillis"":1662651617917,""durationMillis"":258,""pauseDurationMillis"":0}","https://test.nddtf.com/job/pipeline-test2/1/wfapi/describe","{""Path"": """", ""Number"": ""1"", ""JobName"": ""pipeline-test2"", ""FullDisplayName"": ""pipeline-test2 #1""}","2022-09-09 08:39:51.793"
+5,"{""ConnectionId"":1}","{""_links"":{""self"":{""href"":""/job/pipeline-test2/1/execution/node/6/wfapi/describe""}},""id"":""6"",""name"":""Hello"",""execNode"":"""",""status"":""SUCCESS"",""startTimeMillis"":1662651617917,""durationMillis"":258,""pauseDurationMillis"":0}","https://test.nddtf.com/job/pipeline-test2/1/wfapi/describe","{""Path"": """", ""Number"": ""1"", ""JobName"": ""pipeline-test2"", ""FullDisplayName"": ""pipeline-test2 #1""}","2022-09-09 08:39:52.153"
+6,"{""ConnectionId"":1}","{""_links"":{""self"":{""href"":""/job/pipeline-test2/2/execution/node/6/wfapi/describe""}},""id"":""6"",""name"":""Hello"",""execNode"":"""",""status"":""SUCCESS"",""startTimeMillis"":1662651634424,""durationMillis"":79,""pauseDurationMillis"":0}","https://test.nddtf.com/job/pipeline-test2/2/wfapi/describe","{""Path"": """", ""Number"": ""2"", ""JobName"": ""pipeline-test2"", ""FullDisplayName"": ""pipeline-test2 #2""}","2022-09-09 08:39:52.510"
+13574,"{""ConnectionId"":1}","{""_links"":{""self"":{""href"":""/job/Auto%20Init%20Gitlab/1/execution/node/6/wfapi/describe""}},""id"":""6"",""name"":""gitlabInit"",""execNode"":"""",""status"":""FAILED"",""error"":{""message"":""script returned exit code 1"",""type"":""hudson.AbortException""},""startTimeMillis"":1583329644046,""durationMillis"":588,""pauseDurationMillis"":0}",https://jenkins.merico.cn/job/Auto%20Init%20Gitlab/1/wfapi/describe,"{""Number"": ""1"", ""JobName"": ""Auto In [...]
+13575,"{""ConnectionId"":1}","{""_links"":{""self"":{""href"":""/job/Auto%20Init%20Gitlab/18/execution/node/6/wfapi/describe""}},""id"":""6"",""name"":""gitlabInit"",""execNode"":"""",""status"":""FAILED"",""error"":{""message"":""script returned exit code 137"",""type"":""hudson.AbortException""},""startTimeMillis"":1584458835920,""durationMillis"":215100,""pauseDurationMillis"":0}",https://jenkins.merico.cn/job/Auto%20Init%20Gitlab/18/wfapi/describe,"{""Number"": ""18"", ""JobName"": " [...]
+13576,"{""ConnectionId"":1}","{""_links"":{""self"":{""href"":""/job/Auto%20Init%20Gitlab/19/execution/node/6/wfapi/describe""}},""id"":""6"",""name"":""gitlabInit"",""execNode"":"""",""status"":""ABORTED"",""error"":{""message"":null,""type"":""org.jenkinsci.plugins.workflow.steps.FlowInterruptedException""},""startTimeMillis"":1584497957140,""durationMillis"":5859,""pauseDurationMillis"":0}",https://jenkins.merico.cn/job/Auto%20Init%20Gitlab/19/wfapi/describe,"{""Number"": ""19"", ""Jo [...]
+13577,"{""ConnectionId"":1}","{""_links"":{""self"":{""href"":""/job/Pipeline%20expirement/5/execution/node/8/wfapi/describe""}},""id"":""8"",""name"":""scp-f/b"",""execNode"":"""",""status"":""FAILED"",""error"":{""message"":""script returned exit code 1"",""type"":""hudson.AbortException""},""startTimeMillis"":1572321694770,""durationMillis"":297,""pauseDurationMillis"":0}",https://jenkins.merico.cn/job/Pipeline%20expirement/5/wfapi/describe,"{""Number"": ""5"", ""JobName"": ""Pipeline [...]
+13578,"{""ConnectionId"":1}","{""_links"":{""self"":{""href"":""/job/Auto%20Init%20Gitlab/58/execution/node/6/wfapi/describe""}},""id"":""6"",""name"":""gitlabInit"",""execNode"":"""",""status"":""ABORTED"",""error"":{""message"":null,""type"":""org.jenkinsci.plugins.workflow.steps.FlowInterruptedException""},""startTimeMillis"":1615296910614,""durationMillis"":1312274,""pauseDurationMillis"":0}",https://jenkins.merico.cn/job/Auto%20Init%20Gitlab/58/wfapi/describe,"{""Number"": ""58"", " [...]
+13579,"{""ConnectionId"":1}","{""_links"":{""self"":{""href"":""/job/Test%20Gitlab%20Sync/3/execution/node/6/wfapi/describe""}},""id"":""6"",""name"":""gitlabAutoSync"",""execNode"":"""",""status"":""SUCCESS"",""startTimeMillis"":1581076468986,""durationMillis"":14118,""pauseDurationMillis"":0}",https://jenkins.merico.cn/job/Test%20Gitlab%20Sync/3/wfapi/describe,"{""Number"": ""3"", ""JobName"": ""Test Gitlab Sync"", ""FullDisplayName"": ""Test Gitlab Sync #3""}",2022-08-11 09:15:51.406
+13580,"{""ConnectionId"":1}","{""_links"":{""self"":{""href"":""/job/Auto%20Init%20Gitlab/19/execution/node/6/wfapi/describe""}},""id"":""6"",""name"":""gitlabInit"",""execNode"":"""",""status"":""ABORTED"",""error"":{""message"":null,""type"":""org.jenkinsci.plugins.workflow.steps.FlowInterruptedException""},""startTimeMillis"":1584497957140,""durationMillis"":5859,""pauseDurationMillis"":0}",https://jenkins.merico.cn/job/Auto%20Init%20Gitlab/19/wfapi/describe,"{""Number"": ""19"", ""Jo [...]
+13581,"{""ConnectionId"":1}","{""_links"":{""self"":{""href"":""/job/Test%20Gitlab%20Sync/12/execution/node/6/wfapi/describe""}},""id"":""6"",""name"":""gitlabAutoSync"",""execNode"":"""",""status"":""SUCCESS"",""startTimeMillis"":1583981125465,""durationMillis"":83641,""pauseDurationMillis"":0}",https://jenkins.merico.cn/job/Test%20Gitlab%20Sync/12/wfapi/describe,"{""Number"": ""12"", ""JobName"": ""Test Gitlab Sync"", ""FullDisplayName"": ""Test Gitlab Sync #12""}",2022-08-11 09:15:51.889
+13582,"{""ConnectionId"":1}","{""_links"":{""self"":{""href"":""/job/Auto%20Init%20Gitlab/23/execution/node/6/wfapi/describe""}},""id"":""6"",""name"":""gitlabInit"",""execNode"":"""",""status"":""ABORTED"",""error"":{""message"":null,""type"":""org.jenkinsci.plugins.workflow.steps.FlowInterruptedException""},""startTimeMillis"":1605767269680,""durationMillis"":248279,""pauseDurationMillis"":0}",https://jenkins.merico.cn/job/Auto%20Init%20Gitlab/23/wfapi/describe,"{""Number"": ""23"", "" [...]
+13583,"{""ConnectionId"":1}","{""_links"":{""self"":{""href"":""/job/Test%20Gitlab%20Sync/10/execution/node/6/wfapi/describe""}},""id"":""6"",""name"":""gitlabAutoSync"",""execNode"":"""",""status"":""SUCCESS"",""startTimeMillis"":1583981120136,""durationMillis"":86044,""pauseDurationMillis"":0}",https://jenkins.merico.cn/job/Test%20Gitlab%20Sync/10/wfapi/describe,"{""Number"": ""10"", ""JobName"": ""Test Gitlab Sync"", ""FullDisplayName"": ""Test Gitlab Sync #10""}",2022-08-11 09:15:52.210
+13584,"{""ConnectionId"":1}","{""_links"":{""self"":{""href"":""/job/Test%20Gitlab%20Sync/10/execution/node/6/wfapi/describe""}},""id"":""6"",""name"":""gitlabAutoSync"",""execNode"":"""",""status"":""SUCCESS"",""startTimeMillis"":1583981120136,""durationMillis"":86044,""pauseDurationMillis"":0}",https://jenkins.merico.cn/job/Test%20Gitlab%20Sync/10/wfapi/describe,"{""Number"": ""11"", ""JobName"": ""Test Gitlab Sync"", ""FullDisplayName"": ""Test Gitlab Sync 11""}",2022-08-11 09:15:52.210
+13585,"{""ConnectionId"":2}","{""_links"":{""self"":{""href"":""/job/Test%20Gitlab%20Sync/10/execution/node/6/wfapi/describe""}},""id"":""6"",""name"":""gitlabAutoSync"",""execNode"":"""",""status"":""SUCCESS"",""startTimeMillis"":1583981120136,""durationMillis"":86044,""pauseDurationMillis"":0}",https://jenkins.merico.cn/job/Test%20Gitlab%20Sync/10/wfapi/describe,"{""Number"": ""11"", ""JobName"": ""Test Gitlab Sync"", ""FullDisplayName"": ""Test Gitlab Sync 11""}",2022-08-11 09:15:52.210
+13586,"{""ConnectionId"":3}","{""_links"":{""self"":{""href"":""/job/Test%20Gitlab%20Sync/10/execution/node/6/wfapi/describe""}},""id"":""6"",""name"":""gitlabAutoSync"",""execNode"":"""",""status"":""SUCCESS"",""startTimeMillis"":1583981120136,""durationMillis"":86044,""pauseDurationMillis"":0}",https://jenkins.merico.cn/job/Test%20Gitlab%20Sync/10/wfapi/describe,"{""Number"": ""11"", ""JobName"": ""Test Gitlab Sync"", ""FullDisplayName"": ""Test Gitlab Sync 11""}",2022-08-11 09:15:52.210
\ No newline at end of file
diff --git a/plugins/jenkins/e2e/raw_tables/_tool_jenkins_stages.csv b/plugins/jenkins/e2e/raw_tables/_tool_jenkins_stages.csv
new file mode 100644
index 000000000..2e0a39818
--- /dev/null
+++ b/plugins/jenkins/e2e/raw_tables/_tool_jenkins_stages.csv
@@ -0,0 +1,19 @@
+connection_id,id,build_name,name,exec_node,status,start_time_millis,duration_millis,pause_duration_millis,type,_raw_data_params,_raw_data_table,_raw_data_id,_raw_data_remark
+1,6,devlake #1,gitlabInit,,FAILED,1583329644046,588,0,,"{""ConnectionId"":1}",_raw_jenkins_api_stages,13574,
+1,6,devlake #2,gitlabInit,,FAILED,1584458835920,215100,0,,"{""ConnectionId"":1}",_raw_jenkins_api_stages,13575,
+1,6,devlake 2,gitlabInit,,FAILED,1584458835920,215100,0,,"{""ConnectionId"":1}",_raw_jenkins_api_stages,13575,
+1,6,Auto Init Gitlab #19,gitlabInit,,ABORTED,1584497957140,5859,0,,"{""ConnectionId"":1}",_raw_jenkins_api_stages,13580,
+1,6,Auto Init Gitlab #23,gitlabInit,,ABORTED,1605767269680,248279,0,,"{""ConnectionId"":1}",_raw_jenkins_api_stages,13582,
+1,6,Auto Init Gitlab #58,gitlabInit,,ABORTED,1615296910614,1312274,0,,"{""ConnectionId"":1}",_raw_jenkins_api_stages,13578,
+1,6,pipeline-test2 #1,Hello,,SUCCESS,1662651617917,258,0,,"{""ConnectionId"":1}",_raw_jenkins_api_stages,5,
+1,6,pipeline-test2 #2,Hello,,SUCCESS,1662651634424,79,0,,"{""ConnectionId"":1}",_raw_jenkins_api_stages,6,
+1,6,pipeline-test2 #3,Hello,,SUCCESS,1662651649629,122,0,,"{""ConnectionId"":1}",_raw_jenkins_api_stages,3,
+1,6,Test Gitlab Sync #10,gitlabAutoSync,,SUCCESS,1583981120136,86044,0,,"{""ConnectionId"":1}",_raw_jenkins_api_stages,13583,
+1,6,Test Gitlab Sync #12,gitlabAutoSync,,SUCCESS,1583981125465,83641,0,,"{""ConnectionId"":1}",_raw_jenkins_api_stages,13581,
+1,6,Test Gitlab Sync #3,gitlabAutoSync,,SUCCESS,1581076468986,14118,0,,"{""ConnectionId"":1}",_raw_jenkins_api_stages,13579,
+1,6,Test Gitlab Sync 11,gitlabAutoSync,,SUCCESS,1583981120136,86044,0,,"{""ConnectionId"":1}",_raw_jenkins_api_stages,13584,
+1,8,Pipeline expirement #5,scp-f/b,,FAILED,1572321694770,297,0,,"{""ConnectionId"":1}",_raw_jenkins_api_stages,13577,
+1,6,UItest10.90.0.66 #11,gitlabAutoSync,,SUCCESS,1583981120136,86044,0,,"{""ConnectionId"":1}",_raw_jenkins_api_stages,13584,
+1,6,UItest10.90.0.66 12,gitlabAutoSync,,SUCCESS,1583981120136,86044,0,,"{""ConnectionId"":1}",_raw_jenkins_api_stages,13584,
+1,7,UItest10.90.0.66 #14,gitlabAutoSync,,SUCCESS,1583981120136,86044,0,,"{""ConnectionId"":2}",_raw_jenkins_api_stages,13584,
+1,6,UItest10.90.0.66 13,gitlabAutoSync,,SUCCESS,1583981120136,86044,0,,"{""ConnectionId"":3}",_raw_jenkins_api_stages,13584,
diff --git a/plugins/jenkins/e2e/snapshot_tables/_tool_jenkins_build_commits.csv b/plugins/jenkins/e2e/snapshot_tables/_tool_jenkins_build_commits.csv
index 0d7c7b3e2..3e95ec22a 100644
--- a/plugins/jenkins/e2e/snapshot_tables/_tool_jenkins_build_commits.csv
+++ b/plugins/jenkins/e2e/snapshot_tables/_tool_jenkins_build_commits.csv
@@ -7,3 +7,4 @@ connection_id,build_name,commit_sha,branch,repo_url,_raw_data_params,_raw_data_t
 1,devlake #6,20139afef3c6ec9f3ebffcb06e243b145cbef8c6,refs/remotes/origin/main,https://github.com/merico-dev/lake.git,"{""ConnectionId"":1}",_raw_jenkins_api_builds,90,
 1,devlake #7,0006e8105d70318aff5eeee38d405fa181a32aa0,refs/remotes/origin/main,https://github.com/merico-dev/lake.git,"{""ConnectionId"":1}",_raw_jenkins_api_builds,89,
 1,devlake #8,0006e8105d70318aff5eeee38d405fa181a32aa0,refs/remotes/origin/main,https://github.com/merico-dev/lake.git,"{""ConnectionId"":1}",_raw_jenkins_api_builds,88,
+1,devlake 2,0f886c74949c3ee7e489188911c7dc0c1d547418,refs/remotes/origin/main,https://github.com/merico-dev/lake.git,"{""ConnectionId"":1}",_raw_jenkins_api_builds,994,
diff --git a/plugins/jenkins/e2e/snapshot_tables/_tool_jenkins_builds.csv b/plugins/jenkins/e2e/snapshot_tables/_tool_jenkins_builds.csv
index 0d18889c5..8b03fc8f5 100644
--- a/plugins/jenkins/e2e/snapshot_tables/_tool_jenkins_builds.csv
+++ b/plugins/jenkins/e2e/snapshot_tables/_tool_jenkins_builds.csv
@@ -1,38 +1,39 @@
-connection_id,full_display_name,job_name,duration,estimated_duration,number,result,timestamp,start_time,_raw_data_params,_raw_data_table,_raw_data_id,_raw_data_remark
-1,devlake #1,devlake,14820,1457,1,SUCCESS,1650017416514,2022-04-15T10:10:16.000+00:00,"{""ConnectionId"":1}",_raw_jenkins_api_builds,95,
-1,devlake #2,devlake,2121,1457,2,SUCCESS,1650022548450,2022-04-15T11:35:48.000+00:00,"{""ConnectionId"":1}",_raw_jenkins_api_builds,94,
-1,devlake #3,devlake,1587,1457,3,SUCCESS,1650024049161,2022-04-15T12:00:49.000+00:00,"{""ConnectionId"":1}",_raw_jenkins_api_builds,93,
-1,devlake #4,devlake,13952,1457,4,SUCCESS,1662647203905,2022-09-08T14:26:43.000+00:00,"{""ConnectionId"":1}",_raw_jenkins_api_builds,92,
-1,devlake #5,devlake,1274,1457,5,SUCCESS,1662647231332,2022-09-08T14:27:11.000+00:00,"{""ConnectionId"":1}",_raw_jenkins_api_builds,91,
-1,devlake #6,devlake,1202,1457,6,SUCCESS,1662647242809,2022-09-08T14:27:22.000+00:00,"{""ConnectionId"":1}",_raw_jenkins_api_builds,90,
-1,devlake #7,devlake,1988,1457,7,SUCCESS,1662651625889,2022-09-08T15:40:25.000+00:00,"{""ConnectionId"":1}",_raw_jenkins_api_builds,89,
-1,devlake #8,devlake,1180,1457,8,SUCCESS,1662651640536,2022-09-08T15:40:40.000+00:00,"{""ConnectionId"":1}",_raw_jenkins_api_builds,88,
-1,dir-test » dir-test-2 » free #1,free,70,27,1,SUCCESS,1658385566471,2022-07-21T06:39:26.000+00:00,"{""ConnectionId"":1}",_raw_jenkins_api_builds,105,
-1,dir-test » dir-test-2 » free #2,free,6,27,2,SUCCESS,1658385576367,2022-07-21T06:39:36.000+00:00,"{""ConnectionId"":1}",_raw_jenkins_api_builds,104,
-1,dir-test » dir-test-2 » free #3,free,4,27,3,SUCCESS,1662647217041,2022-09-08T14:26:57.000+00:00,"{""ConnectionId"":1}",_raw_jenkins_api_builds,103,
-1,dir-test » dir-test-2 » free1 #1,free1,4,9,1,SUCCESS,1658386240842,2022-07-21T06:50:40.000+00:00,"{""ConnectionId"":1}",_raw_jenkins_api_builds,112,
-1,dir-test » dir-test-2 » free1 #2,free1,11,9,2,SUCCESS,1658386250446,2022-07-21T06:50:50.000+00:00,"{""ConnectionId"":1}",_raw_jenkins_api_builds,111,
-1,dir-test » dir-test-2 » free1 #3,free1,4,9,3,SUCCESS,1658386255052,2022-07-21T06:50:55.000+00:00,"{""ConnectionId"":1}",_raw_jenkins_api_builds,110,
-1,dir-test » dir-test-2 » free1 #4,free1,11,9,4,SUCCESS,1662647217746,2022-09-08T14:26:57.000+00:00,"{""ConnectionId"":1}",_raw_jenkins_api_builds,109,
-1,dir-test » pipeline-test #1,pipeline-test,1429,745,1,SUCCESS,1658385602419,2022-07-21T06:40:02.000+00:00,"{""ConnectionId"":1}",_raw_jenkins_api_builds,97,
-1,dir-test » pipeline-test #2,pipeline-test,61,745,2,SUCCESS,1662647211512,2022-09-08T14:26:51.000+00:00,"{""ConnectionId"":1}",_raw_jenkins_api_builds,96,
-1,dir-test » testfile #1,testfile,4,8,1,SUCCESS,1658385600801,2022-07-21T06:40:00.000+00:00,"{""ConnectionId"":1}",_raw_jenkins_api_builds,102,
-1,dir-test » testfile #2,testfile,11,8,2,SUCCESS,1662647212436,2022-09-08T14:26:52.000+00:00,"{""ConnectionId"":1}",_raw_jenkins_api_builds,101,
-1,pipeline-test2 #1,pipeline-test2,4564,1972,1,SUCCESS,1662651613681,2022-09-08T15:40:13.000+00:00,"{""ConnectionId"":1}",_raw_jenkins_api_builds,100,
-1,pipeline-test2 #2,pipeline-test2,551,1972,2,SUCCESS,1662651633991,2022-09-08T15:40:33.000+00:00,"{""ConnectionId"":1}",_raw_jenkins_api_builds,99,
-1,pipeline-test2 #3,pipeline-test2,802,1972,3,SUCCESS,1662651648992,2022-09-08T15:40:48.000+00:00,"{""ConnectionId"":1}",_raw_jenkins_api_builds,98,
-1,测试流水线 #1,测试流水线,1539,568,1,SUCCESS,1662647205888,2022-09-08T14:26:45.000+00:00,"{""ConnectionId"":1}",_raw_jenkins_api_builds,108,
-1,测试流水线 #2,测试流水线,74,568,2,SUCCESS,1662647232072,2022-09-08T14:27:12.000+00:00,"{""ConnectionId"":1}",_raw_jenkins_api_builds,107,
-1,测试流水线 #3,测试流水线,90,568,3,SUCCESS,1662651649571,2022-09-08T15:40:49.000+00:00,"{""ConnectionId"":1}",_raw_jenkins_api_builds,106,
-1,这是一个改了名字的测试任务 #1,这是一个改了名字的测试任务,57,6,1,SUCCESS,1650017153775,2022-04-15T10:05:53.000+00:00,"{""ConnectionId"":1}",_raw_jenkins_api_builds,124,
-1,这是一个改了名字的测试任务 #10,这是一个改了名字的测试任务,12,6,10,SUCCESS,1662647233074,2022-09-08T14:27:13.000+00:00,"{""ConnectionId"":1}",_raw_jenkins_api_builds,115,
-1,这是一个改了名字的测试任务 #11,这是一个改了名字的测试任务,4,6,11,SUCCESS,1662651656567,2022-09-08T15:40:56.000+00:00,"{""ConnectionId"":1}",_raw_jenkins_api_builds,114,
-1,这是一个改了名字的测试任务 #12,这是一个改了名字的测试任务,2,6,12,SUCCESS,1662651657893,2022-09-08T15:40:57.000+00:00,"{""ConnectionId"":1}",_raw_jenkins_api_builds,113,
-1,这是一个改了名字的测试任务 #2,这是一个改了名字的测试任务,4,6,2,SUCCESS,1650017177939,2022-04-15T10:06:17.000+00:00,"{""ConnectionId"":1}",_raw_jenkins_api_builds,123,
-1,这是一个改了名字的测试任务 #3,这是一个改了名字的测试任务,3,6,3,SUCCESS,1650017186253,2022-04-15T10:06:26.000+00:00,"{""ConnectionId"":1}",_raw_jenkins_api_builds,122,
-1,这是一个改了名字的测试任务 #4,这是一个改了名字的测试任务,6,6,4,SUCCESS,1650022556910,2022-04-15T11:35:56.000+00:00,"{""ConnectionId"":1}",_raw_jenkins_api_builds,121,
-1,这是一个改了名字的测试任务 #5,这是一个改了名字的测试任务,6,6,5,SUCCESS,1650022558491,2022-04-15T11:35:58.000+00:00,"{""ConnectionId"":1}",_raw_jenkins_api_builds,120,
-1,这是一个改了名字的测试任务 #6,这是一个改了名字的测试任务,10,6,6,SUCCESS,1650022560954,2022-04-15T11:36:00.000+00:00,"{""ConnectionId"":1}",_raw_jenkins_api_builds,119,
-1,这是一个改了名字的测试任务 #7,这是一个改了名字的测试任务,8,6,7,SUCCESS,1650023883294,2022-04-15T11:58:03.000+00:00,"{""ConnectionId"":1}",_raw_jenkins_api_builds,118,
-1,这是一个改了名字的测试任务 #8,这是一个改了名字的测试任务,11,6,8,SUCCESS,1650023894336,2022-04-15T11:58:14.000+00:00,"{""ConnectionId"":1}",_raw_jenkins_api_builds,117,
-1,这是一个改了名字的测试任务 #9,这是一个改了名字的测试任务,78,6,9,SUCCESS,1662647207972,2022-09-08T14:26:47.000+00:00,"{""ConnectionId"":1}",_raw_jenkins_api_builds,116,
+connection_id,full_display_name,job_name,duration,estimated_duration,number,result,timestamp,start_time,has_stages,_raw_data_params,_raw_data_table,_raw_data_id,_raw_data_remark
+1,devlake #1,devlake,14820,1457,1,SUCCESS,1650017416514,2022-04-15T10:10:16.000+00:00,0,"{""ConnectionId"":1}",_raw_jenkins_api_builds,95,
+1,devlake #2,devlake,2121,1457,2,SUCCESS,1650022548450,2022-04-15T11:35:48.000+00:00,0,"{""ConnectionId"":1}",_raw_jenkins_api_builds,94,
+1,devlake #3,devlake,1587,1457,3,SUCCESS,1650024049161,2022-04-15T12:00:49.000+00:00,0,"{""ConnectionId"":1}",_raw_jenkins_api_builds,93,
+1,devlake #4,devlake,13952,1457,4,SUCCESS,1662647203905,2022-09-08T14:26:43.000+00:00,0,"{""ConnectionId"":1}",_raw_jenkins_api_builds,92,
+1,devlake #5,devlake,1274,1457,5,SUCCESS,1662647231332,2022-09-08T14:27:11.000+00:00,0,"{""ConnectionId"":1}",_raw_jenkins_api_builds,91,
+1,devlake #6,devlake,1202,1457,6,SUCCESS,1662647242809,2022-09-08T14:27:22.000+00:00,0,"{""ConnectionId"":1}",_raw_jenkins_api_builds,90,
+1,devlake #7,devlake,1988,1457,7,SUCCESS,1662651625889,2022-09-08T15:40:25.000+00:00,0,"{""ConnectionId"":1}",_raw_jenkins_api_builds,89,
+1,devlake #8,devlake,1180,1457,8,SUCCESS,1662651640536,2022-09-08T15:40:40.000+00:00,0,"{""ConnectionId"":1}",_raw_jenkins_api_builds,88,
+1,devlake 2,devlake,2121,1457,2,SUCCESS,1650022548450,2022-04-15T11:35:48.000+00:00,0,"{""ConnectionId"":1}",_raw_jenkins_api_builds,994,
+1,dir-test » dir-test-2 » free #1,free,70,27,1,SUCCESS,1658385566471,2022-07-21T06:39:26.000+00:00,0,"{""ConnectionId"":1}",_raw_jenkins_api_builds,105,
+1,dir-test » dir-test-2 » free #2,free,6,27,2,SUCCESS,1658385576367,2022-07-21T06:39:36.000+00:00,0,"{""ConnectionId"":1}",_raw_jenkins_api_builds,104,
+1,dir-test » dir-test-2 » free #3,free,4,27,3,SUCCESS,1662647217041,2022-09-08T14:26:57.000+00:00,0,"{""ConnectionId"":1}",_raw_jenkins_api_builds,103,
+1,dir-test » dir-test-2 » free1 #1,free1,4,9,1,SUCCESS,1658386240842,2022-07-21T06:50:40.000+00:00,0,"{""ConnectionId"":1}",_raw_jenkins_api_builds,112,
+1,dir-test » dir-test-2 » free1 #2,free1,11,9,2,SUCCESS,1658386250446,2022-07-21T06:50:50.000+00:00,0,"{""ConnectionId"":1}",_raw_jenkins_api_builds,111,
+1,dir-test » dir-test-2 » free1 #3,free1,4,9,3,SUCCESS,1658386255052,2022-07-21T06:50:55.000+00:00,0,"{""ConnectionId"":1}",_raw_jenkins_api_builds,110,
+1,dir-test » dir-test-2 » free1 #4,free1,11,9,4,SUCCESS,1662647217746,2022-09-08T14:26:57.000+00:00,0,"{""ConnectionId"":1}",_raw_jenkins_api_builds,109,
+1,dir-test » pipeline-test #1,pipeline-test,1429,745,1,SUCCESS,1658385602419,2022-07-21T06:40:02.000+00:00,0,"{""ConnectionId"":1}",_raw_jenkins_api_builds,97,
+1,dir-test » pipeline-test #2,pipeline-test,61,745,2,SUCCESS,1662647211512,2022-09-08T14:26:51.000+00:00,0,"{""ConnectionId"":1}",_raw_jenkins_api_builds,96,
+1,dir-test » testfile #1,testfile,4,8,1,SUCCESS,1658385600801,2022-07-21T06:40:00.000+00:00,0,"{""ConnectionId"":1}",_raw_jenkins_api_builds,102,
+1,dir-test » testfile #2,testfile,11,8,2,SUCCESS,1662647212436,2022-09-08T14:26:52.000+00:00,0,"{""ConnectionId"":1}",_raw_jenkins_api_builds,101,
+1,pipeline-test2 #1,pipeline-test2,4564,1972,1,SUCCESS,1662651613681,2022-09-08T15:40:13.000+00:00,0,"{""ConnectionId"":1}",_raw_jenkins_api_builds,100,
+1,pipeline-test2 #2,pipeline-test2,551,1972,2,SUCCESS,1662651633991,2022-09-08T15:40:33.000+00:00,0,"{""ConnectionId"":1}",_raw_jenkins_api_builds,99,
+1,pipeline-test2 #3,pipeline-test2,802,1972,3,SUCCESS,1662651648992,2022-09-08T15:40:48.000+00:00,0,"{""ConnectionId"":1}",_raw_jenkins_api_builds,98,
+1,测试流水线 #1,测试流水线,1539,568,1,SUCCESS,1662647205888,2022-09-08T14:26:45.000+00:00,0,"{""ConnectionId"":1}",_raw_jenkins_api_builds,108,
+1,测试流水线 #2,测试流水线,74,568,2,SUCCESS,1662647232072,2022-09-08T14:27:12.000+00:00,0,"{""ConnectionId"":1}",_raw_jenkins_api_builds,107,
+1,测试流水线 #3,测试流水线,90,568,3,SUCCESS,1662651649571,2022-09-08T15:40:49.000+00:00,0,"{""ConnectionId"":1}",_raw_jenkins_api_builds,106,
+1,这是一个改了名字的测试任务 #1,这是一个改了名字的测试任务,57,6,1,SUCCESS,1650017153775,2022-04-15T10:05:53.000+00:00,0,"{""ConnectionId"":1}",_raw_jenkins_api_builds,124,
+1,这是一个改了名字的测试任务 #10,这是一个改了名字的测试任务,12,6,10,SUCCESS,1662647233074,2022-09-08T14:27:13.000+00:00,0,"{""ConnectionId"":1}",_raw_jenkins_api_builds,115,
+1,这是一个改了名字的测试任务 #11,这是一个改了名字的测试任务,4,6,11,SUCCESS,1662651656567,2022-09-08T15:40:56.000+00:00,0,"{""ConnectionId"":1}",_raw_jenkins_api_builds,114,
+1,这是一个改了名字的测试任务 #12,这是一个改了名字的测试任务,2,6,12,SUCCESS,1662651657893,2022-09-08T15:40:57.000+00:00,0,"{""ConnectionId"":1}",_raw_jenkins_api_builds,113,
+1,这是一个改了名字的测试任务 #2,这是一个改了名字的测试任务,4,6,2,SUCCESS,1650017177939,2022-04-15T10:06:17.000+00:00,0,"{""ConnectionId"":1}",_raw_jenkins_api_builds,123,
+1,这是一个改了名字的测试任务 #3,这是一个改了名字的测试任务,3,6,3,SUCCESS,1650017186253,2022-04-15T10:06:26.000+00:00,0,"{""ConnectionId"":1}",_raw_jenkins_api_builds,122,
+1,这是一个改了名字的测试任务 #4,这是一个改了名字的测试任务,6,6,4,SUCCESS,1650022556910,2022-04-15T11:35:56.000+00:00,0,"{""ConnectionId"":1}",_raw_jenkins_api_builds,121,
+1,这是一个改了名字的测试任务 #5,这是一个改了名字的测试任务,6,6,5,SUCCESS,1650022558491,2022-04-15T11:35:58.000+00:00,0,"{""ConnectionId"":1}",_raw_jenkins_api_builds,120,
+1,这是一个改了名字的测试任务 #6,这是一个改了名字的测试任务,10,6,6,SUCCESS,1650022560954,2022-04-15T11:36:00.000+00:00,0,"{""ConnectionId"":1}",_raw_jenkins_api_builds,119,
+1,这是一个改了名字的测试任务 #7,这是一个改了名字的测试任务,8,6,7,SUCCESS,1650023883294,2022-04-15T11:58:03.000+00:00,0,"{""ConnectionId"":1}",_raw_jenkins_api_builds,118,
+1,这是一个改了名字的测试任务 #8,这是一个改了名字的测试任务,11,6,8,SUCCESS,1650023894336,2022-04-15T11:58:14.000+00:00,0,"{""ConnectionId"":1}",_raw_jenkins_api_builds,117,
+1,这是一个改了名字的测试任务 #9,这是一个改了名字的测试任务,78,6,9,SUCCESS,1662647207972,2022-09-08T14:26:47.000+00:00,0,"{""ConnectionId"":1}",_raw_jenkins_api_builds,116,
diff --git a/plugins/jenkins/e2e/snapshot_tables/_tool_jenkins_builds_after_enrich.csv b/plugins/jenkins/e2e/snapshot_tables/_tool_jenkins_builds_after_enrich.csv
new file mode 100644
index 000000000..0f5f17502
--- /dev/null
+++ b/plugins/jenkins/e2e/snapshot_tables/_tool_jenkins_builds_after_enrich.csv
@@ -0,0 +1,39 @@
+connection_id,full_display_name,job_name,duration,has_stages
+1,devlake #1,devlake,14820,1
+1,devlake #2,devlake,2121,1
+1,devlake #3,devlake,1587,0
+1,devlake #4,devlake,13952,0
+1,devlake #5,devlake,1274,0
+1,devlake #6,devlake,1202,0
+1,devlake #7,devlake,1988,0
+1,devlake #8,devlake,1180,0
+1,devlake 2,devlake,2121,1
+1,dir-test » dir-test-2 » free #1,free,70,0
+1,dir-test » dir-test-2 » free #2,free,6,0
+1,dir-test » dir-test-2 » free #3,free,4,0
+1,dir-test » dir-test-2 » free1 #1,free1,4,0
+1,dir-test » dir-test-2 » free1 #2,free1,11,0
+1,dir-test » dir-test-2 » free1 #3,free1,4,0
+1,dir-test » dir-test-2 » free1 #4,free1,11,0
+1,dir-test » pipeline-test #1,pipeline-test,1429,0
+1,dir-test » pipeline-test #2,pipeline-test,61,0
+1,dir-test » testfile #1,testfile,4,0
+1,dir-test » testfile #2,testfile,11,0
+1,pipeline-test2 #1,pipeline-test2,4564,1
+1,pipeline-test2 #2,pipeline-test2,551,1
+1,pipeline-test2 #3,pipeline-test2,802,1
+1,测试流水线 #1,测试流水线,1539,0
+1,测试流水线 #2,测试流水线,74,0
+1,测试流水线 #3,测试流水线,90,0
+1,这是一个改了名字的测试任务 #1,这是一个改了名字的测试任务,57,0
+1,这是一个改了名字的测试任务 #10,这是一个改了名字的测试任务,12,0
+1,这是一个改了名字的测试任务 #11,这是一个改了名字的测试任务,4,0
+1,这是一个改了名字的测试任务 #12,这是一个改了名字的测试任务,2,0
+1,这是一个改了名字的测试任务 #2,这是一个改了名字的测试任务,4,0
+1,这是一个改了名字的测试任务 #3,这是一个改了名字的测试任务,3,0
+1,这是一个改了名字的测试任务 #4,这是一个改了名字的测试任务,6,0
+1,这是一个改了名字的测试任务 #5,这是一个改了名字的测试任务,6,0
+1,这是一个改了名字的测试任务 #6,这是一个改了名字的测试任务,10,0
+1,这是一个改了名字的测试任务 #7,这是一个改了名字的测试任务,8,0
+1,这是一个改了名字的测试任务 #8,这是一个改了名字的测试任务,11,0
+1,这是一个改了名字的测试任务 #9,这是一个改了名字的测试任务,78,0
diff --git a/plugins/jenkins/e2e/snapshot_tables/_tool_jenkins_stages.csv b/plugins/jenkins/e2e/snapshot_tables/_tool_jenkins_stages.csv
index 768d8c391..3d85037b5 100644
--- a/plugins/jenkins/e2e/snapshot_tables/_tool_jenkins_stages.csv
+++ b/plugins/jenkins/e2e/snapshot_tables/_tool_jenkins_stages.csv
@@ -1,3 +1,14 @@
 connection_id,id,build_name,name,exec_node,status,start_time_millis,duration_millis,pause_duration_millis,type,_raw_data_params,_raw_data_table,_raw_data_id,_raw_data_remark
-1,6,,gitlabAutoSync,,SUCCESS,1583981120136,86044,0,,"{""ConnectionId"":1}",_raw_jenkins_api_stages,13583,
-1,8,,scp-f/b,,FAILED,1572321694770,297,0,,"{""ConnectionId"":1}",_raw_jenkins_api_stages,13577,
+1,6,Auto Init Gitlab #1,gitlabInit,,FAILED,1583329644046,588,0,,"{""ConnectionId"":1}",_raw_jenkins_api_stages,13574,
+1,6,Auto Init Gitlab #18,gitlabInit,,FAILED,1584458835920,215100,0,,"{""ConnectionId"":1}",_raw_jenkins_api_stages,13575,
+1,6,Auto Init Gitlab #19,gitlabInit,,ABORTED,1584497957140,5859,0,,"{""ConnectionId"":1}",_raw_jenkins_api_stages,13580,
+1,6,Auto Init Gitlab #23,gitlabInit,,ABORTED,1605767269680,248279,0,,"{""ConnectionId"":1}",_raw_jenkins_api_stages,13582,
+1,6,Auto Init Gitlab #58,gitlabInit,,ABORTED,1615296910614,1312274,0,,"{""ConnectionId"":1}",_raw_jenkins_api_stages,13578,
+1,6,pipeline-test2 #1,Hello,,SUCCESS,1662651617917,258,0,,"{""ConnectionId"":1}",_raw_jenkins_api_stages,5,
+1,6,pipeline-test2 #2,Hello,,SUCCESS,1662651634424,79,0,,"{""ConnectionId"":1}",_raw_jenkins_api_stages,6,
+1,6,pipeline-test2 #3,Hello,,SUCCESS,1662651649629,122,0,,"{""ConnectionId"":1}",_raw_jenkins_api_stages,3,
+1,6,Test Gitlab Sync #10,gitlabAutoSync,,SUCCESS,1583981120136,86044,0,,"{""ConnectionId"":1}",_raw_jenkins_api_stages,13583,
+1,6,Test Gitlab Sync #12,gitlabAutoSync,,SUCCESS,1583981125465,83641,0,,"{""ConnectionId"":1}",_raw_jenkins_api_stages,13581,
+1,6,Test Gitlab Sync #3,gitlabAutoSync,,SUCCESS,1581076468986,14118,0,,"{""ConnectionId"":1}",_raw_jenkins_api_stages,13579,
+1,6,Test Gitlab Sync 11,gitlabAutoSync,,SUCCESS,1583981120136,86044,0,,"{""ConnectionId"":1}",_raw_jenkins_api_stages,13584,
+1,8,Pipeline expirement #5,scp-f/b,,FAILED,1572321694770,297,0,,"{""ConnectionId"":1}",_raw_jenkins_api_stages,13577,
diff --git a/plugins/jenkins/e2e/snapshot_tables/cicd_pipeline_commits.csv b/plugins/jenkins/e2e/snapshot_tables/cicd_pipeline_commits.csv
index 5286fcd73..a17e25ff6 100644
--- a/plugins/jenkins/e2e/snapshot_tables/cicd_pipeline_commits.csv
+++ b/plugins/jenkins/e2e/snapshot_tables/cicd_pipeline_commits.csv
@@ -7,3 +7,4 @@ jenkins:JenkinsBuild:1:devlake #5,20139afef3c6ec9f3ebffcb06e243b145cbef8c6,,http
 jenkins:JenkinsBuild:1:devlake #6,20139afef3c6ec9f3ebffcb06e243b145cbef8c6,,https://github.com/merico-dev/lake.git,refs/remotes/origin/main
 jenkins:JenkinsBuild:1:devlake #7,0006e8105d70318aff5eeee38d405fa181a32aa0,,https://github.com/merico-dev/lake.git,refs/remotes/origin/main
 jenkins:JenkinsBuild:1:devlake #8,0006e8105d70318aff5eeee38d405fa181a32aa0,,https://github.com/merico-dev/lake.git,refs/remotes/origin/main
+jenkins:JenkinsBuild:1:devlake 2,0f886c74949c3ee7e489188911c7dc0c1d547418,,https://github.com/merico-dev/lake.git,refs/remotes/origin/main
diff --git a/plugins/jenkins/e2e/snapshot_tables/cicd_pipelines.csv b/plugins/jenkins/e2e/snapshot_tables/cicd_pipelines.csv
index 0964ffd4b..f4856d697 100644
--- a/plugins/jenkins/e2e/snapshot_tables/cicd_pipelines.csv
+++ b/plugins/jenkins/e2e/snapshot_tables/cicd_pipelines.csv
@@ -7,6 +7,7 @@ jenkins:JenkinsBuild:1:devlake #5,devlake,SUCCESS,DONE,,1,,2022-09-08T14:27:11.0
 jenkins:JenkinsBuild:1:devlake #6,devlake,SUCCESS,DONE,,1,,2022-09-08T14:27:22.000+00:00,2022-09-08T14:27:23.000+00:00
 jenkins:JenkinsBuild:1:devlake #7,devlake,SUCCESS,DONE,,1,,2022-09-08T15:40:25.000+00:00,2022-09-08T15:40:26.000+00:00
 jenkins:JenkinsBuild:1:devlake #8,devlake,SUCCESS,DONE,,1,,2022-09-08T15:40:40.000+00:00,2022-09-08T15:40:41.000+00:00
+jenkins:JenkinsBuild:1:devlake 2,devlake,SUCCESS,DONE,,2,,2022-04-15T11:35:48.000+00:00,2022-04-15T11:35:50.000+00:00
 jenkins:JenkinsBuild:1:dir-test » dir-test-2 » free #1,free,SUCCESS,DONE,,0,,2022-07-21T06:39:26.000+00:00,2022-07-21T06:39:26.000+00:00
 jenkins:JenkinsBuild:1:dir-test » dir-test-2 » free #2,free,SUCCESS,DONE,,0,,2022-07-21T06:39:36.000+00:00,2022-07-21T06:39:36.000+00:00
 jenkins:JenkinsBuild:1:dir-test » dir-test-2 » free #3,free,SUCCESS,DONE,,0,,2022-09-08T14:26:57.000+00:00,2022-09-08T14:26:57.000+00:00
diff --git a/plugins/jenkins/e2e/snapshot_tables/cicd_tasks.csv b/plugins/jenkins/e2e/snapshot_tables/cicd_tasks.csv
index 1e41b0840..1e3224ba1 100644
--- a/plugins/jenkins/e2e/snapshot_tables/cicd_tasks.csv
+++ b/plugins/jenkins/e2e/snapshot_tables/cicd_tasks.csv
@@ -1,6 +1,4 @@
 id,name,pipeline_id,result,status,type,environment,duration_sec,started_date,finished_date
-jenkins:JenkinsBuild:1:devlake #1,devlake,jenkins:JenkinsBuild:1:devlake #1,SUCCESS,DONE,,,14,2022-04-15T10:10:16.000+00:00,2022-04-15T10:10:30.000+00:00
-jenkins:JenkinsBuild:1:devlake #2,devlake,jenkins:JenkinsBuild:1:devlake #2,SUCCESS,DONE,,,2,2022-04-15T11:35:48.000+00:00,2022-04-15T11:35:50.000+00:00
 jenkins:JenkinsBuild:1:devlake #3,devlake,jenkins:JenkinsBuild:1:devlake #3,SUCCESS,DONE,,,1,2022-04-15T12:00:49.000+00:00,2022-04-15T12:00:50.000+00:00
 jenkins:JenkinsBuild:1:devlake #4,devlake,jenkins:JenkinsBuild:1:devlake #4,SUCCESS,DONE,,,13,2022-09-08T14:26:43.000+00:00,2022-09-08T14:26:56.000+00:00
 jenkins:JenkinsBuild:1:devlake #5,devlake,jenkins:JenkinsBuild:1:devlake #5,SUCCESS,DONE,,,1,2022-09-08T14:27:11.000+00:00,2022-09-08T14:27:12.000+00:00
@@ -18,9 +16,6 @@ jenkins:JenkinsBuild:1:dir-test » pipeline-test #1,pipeline-test,jenkins:Jenkin
 jenkins:JenkinsBuild:1:dir-test » pipeline-test #2,pipeline-test,jenkins:JenkinsBuild:1:dir-test » pipeline-test #2,SUCCESS,DONE,,,0,2022-09-08T14:26:51.000+00:00,2022-09-08T14:26:51.000+00:00
 jenkins:JenkinsBuild:1:dir-test » testfile #1,testfile,jenkins:JenkinsBuild:1:dir-test » testfile #1,SUCCESS,DONE,,,0,2022-07-21T06:40:00.000+00:00,2022-07-21T06:40:00.000+00:00
 jenkins:JenkinsBuild:1:dir-test » testfile #2,testfile,jenkins:JenkinsBuild:1:dir-test » testfile #2,SUCCESS,DONE,,,0,2022-09-08T14:26:52.000+00:00,2022-09-08T14:26:52.000+00:00
-jenkins:JenkinsBuild:1:pipeline-test2 #1,pipeline-test2,jenkins:JenkinsBuild:1:pipeline-test2 #1,SUCCESS,DONE,,,4,2022-09-08T15:40:13.000+00:00,2022-09-08T15:40:17.000+00:00
-jenkins:JenkinsBuild:1:pipeline-test2 #2,pipeline-test2,jenkins:JenkinsBuild:1:pipeline-test2 #2,SUCCESS,DONE,,,0,2022-09-08T15:40:33.000+00:00,2022-09-08T15:40:33.000+00:00
-jenkins:JenkinsBuild:1:pipeline-test2 #3,pipeline-test2,jenkins:JenkinsBuild:1:pipeline-test2 #3,SUCCESS,DONE,,,0,2022-09-08T15:40:48.000+00:00,2022-09-08T15:40:48.000+00:00
 jenkins:JenkinsBuild:1:测试流水线 #1,测试流水线,jenkins:JenkinsBuild:1:测试流水线 #1,SUCCESS,DONE,,,1,2022-09-08T14:26:45.000+00:00,2022-09-08T14:26:46.000+00:00
 jenkins:JenkinsBuild:1:测试流水线 #2,测试流水线,jenkins:JenkinsBuild:1:测试流水线 #2,SUCCESS,DONE,,,0,2022-09-08T14:27:12.000+00:00,2022-09-08T14:27:12.000+00:00
 jenkins:JenkinsBuild:1:测试流水线 #3,测试流水线,jenkins:JenkinsBuild:1:测试流水线 #3,SUCCESS,DONE,,,0,2022-09-08T15:40:49.000+00:00,2022-09-08T15:40:49.000+00:00
diff --git a/plugins/jenkins/e2e/snapshot_tables/cicd_tasks_after_stages.csv b/plugins/jenkins/e2e/snapshot_tables/cicd_tasks_after_stages.csv
index 1a32ab464..3480c8219 100644
--- a/plugins/jenkins/e2e/snapshot_tables/cicd_tasks_after_stages.csv
+++ b/plugins/jenkins/e2e/snapshot_tables/cicd_tasks_after_stages.csv
@@ -1 +1,4 @@
 id,name,pipeline_id,result,status,type,duration_sec,started_date,finished_date,environment,_raw_data_params,_raw_data_table,_raw_data_id,_raw_data_remark
+jenkins:JenkinsStage:1:pipeline-test2 #1:Hello,Hello,jenkins:JenkinsBuild:1:pipeline-test2 #1,ABORT,DONE,,0,1970-01-01T00:00:00.000+00:00,2022-09-08T15:40:17.000+00:00,,"{""ConnectionId"":1}",_raw_jenkins_api_stages,5,
+jenkins:JenkinsStage:1:pipeline-test2 #2:Hello,Hello,jenkins:JenkinsBuild:1:pipeline-test2 #2,ABORT,DONE,,0,1970-01-01T00:00:00.000+00:00,2022-09-08T15:40:34.000+00:00,,"{""ConnectionId"":1}",_raw_jenkins_api_stages,6,
+jenkins:JenkinsStage:1:pipeline-test2 #3:Hello,Hello,jenkins:JenkinsBuild:1:pipeline-test2 #3,ABORT,DONE,,0,1970-01-01T00:00:00.000+00:00,2022-09-08T15:40:49.000+00:00,,"{""ConnectionId"":1}",_raw_jenkins_api_stages,3,
diff --git a/plugins/jenkins/tasks/build_stages_enricher.go b/plugins/jenkins/tasks/build_stages_enricher.go
index f954136e5..495bafeac 100644
--- a/plugins/jenkins/tasks/build_stages_enricher.go
+++ b/plugins/jenkins/tasks/build_stages_enricher.go
@@ -18,16 +18,14 @@ limitations under the License.
 package tasks
 
 import (
+	goerror "errors"
 	"github.com/apache/incubator-devlake/errors"
 	"github.com/apache/incubator-devlake/plugins/core"
 	"github.com/apache/incubator-devlake/plugins/core/dal"
 	"github.com/apache/incubator-devlake/plugins/jenkins/models"
-	"strconv"
-	"strings"
+	"gorm.io/gorm"
 )
 
-// this struct should be moved to `gitub_api_common.go`
-
 var EnrichApiBuildWithStagesMeta = core.SubTaskMeta{
 	Name:             "enrichApiBuildWithStages",
 	EntryPoint:       EnrichApiBuildWithStages,
@@ -63,15 +61,11 @@ func EnrichApiBuildWithStages(taskCtx core.SubTaskContext) errors.Error {
 		}
 		build := &models.JenkinsBuild{}
 		build.ConnectionId = data.Options.ConnectionId
-		str := strings.Split(buildName, "#")
-		build.JobName = strings.TrimSpace(str[0])
-		var number int
-		number, err = errors.Convert01(strconv.Atoi(strings.TrimSpace(str[1])))
-		if err != nil {
-			return err
-		}
-		build.Number = int64(number)
+		build.FullDisplayName = buildName
 		err = db.First(build)
+		if goerror.Is(err, gorm.ErrRecordNotFound) {
+			continue
+		}
 		if err != nil {
 			return errors.Convert(err)
 		}