Skip to content

Commit d292ecc

Browse files
author
Kostas Petrakis
committed
chore(cicd): add extra statuses for ci/cd jobs
- Extends existing statuses for ci/cd for GitHub, GitLab, BitBucket and CircleCI
1 parent 17837c0 commit d292ecc

File tree

12 files changed

+304
-99
lines changed

12 files changed

+304
-99
lines changed

backend/core/models/domainlayer/devops/cicd_pipeline.go

Lines changed: 20 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -49,9 +49,11 @@ func (CICDPipeline) TableName() string {
4949

5050
// this is for the field `result` in table.cicd_pipelines and table.cicd_tasks
5151
const (
52-
RESULT_SUCCESS = "SUCCESS"
53-
RESULT_FAILURE = "FAILURE"
54-
RESULT_DEFAULT = ""
52+
RESULT_SUCCESS = "SUCCESS"
53+
RESULT_FAILURE = "FAILURE"
54+
RESULT_CANCELED = "CANCELED"
55+
RESULT_SKIPPED = "SKIPPED"
56+
RESULT_DEFAULT = ""
5557
)
5658

5759
// this is for the field `status` in table.cicd_pipelines and table.cicd_tasks
@@ -62,9 +64,11 @@ const (
6264
)
6365

6466
type ResultRule struct {
65-
Success []string
66-
Failure []string
67-
Default string
67+
Success []string
68+
Failure []string
69+
Canceled []string
70+
Skipped []string
71+
Default string
6872
}
6973

7074
type StatusRule struct {
@@ -91,6 +95,16 @@ func GetResult(rule *ResultRule, input interface{}) string {
9195
return RESULT_FAILURE
9296
}
9397
}
98+
for _, canceled := range rule.Canceled {
99+
if strings.EqualFold(canceled, cast.ToString(input)) {
100+
return RESULT_CANCELED
101+
}
102+
}
103+
for _, skipped := range rule.Skipped {
104+
if strings.EqualFold(skipped, cast.ToString(input)) {
105+
return RESULT_SKIPPED
106+
}
107+
}
94108
return rule.Default
95109
}
96110

backend/plugins/bitbucket/tasks/deployment_convertor.go

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -94,12 +94,14 @@ func ConvertDeployments(taskCtx plugin.SubTaskContext) errors.Error {
9494
CicdScopeId: repoId,
9595
Name: bitbucketDeployment.Name,
9696
Result: devops.GetResult(&devops.ResultRule{
97-
Success: []string{models.COMPLETED, models.SUCCESSFUL},
98-
Failure: []string{models.FAILED, models.STOPPED, models.CANCELLED},
99-
Default: devops.RESULT_DEFAULT,
97+
Success: []string{models.COMPLETED, models.SUCCESSFUL},
98+
Failure: []string{models.FAILED, models.STOPPED},
99+
Canceled: []string{models.CANCELLED},
100+
Skipped: []string{models.SKIPPED},
101+
Default: devops.RESULT_DEFAULT,
100102
}, bitbucketDeployment.Status),
101103
Status: devops.GetStatus(&devops.StatusRule{
102-
Done: []string{models.COMPLETED, models.SUCCESSFUL, models.FAILED, models.STOPPED, models.CANCELLED},
104+
Done: []string{models.COMPLETED, models.SUCCESSFUL, models.FAILED, models.STOPPED, models.CANCELLED, models.SKIPPED},
103105
InProgress: []string{models.IN_PROGRESS},
104106
Default: devops.STATUS_OTHER,
105107
}, bitbucketDeployment.Status),

backend/plugins/bitbucket/tasks/pipeline_convertor.go

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -89,13 +89,15 @@ func ConvertPipelines(taskCtx plugin.SubTaskContext) errors.Error {
8989
},
9090
Name: fmt.Sprintf("%s/%d", domainEntityId, bitbucketPipeline.BuildNumber),
9191
Result: devops.GetResult(&devops.ResultRule{
92-
Success: []string{models.SUCCESSFUL, models.COMPLETED, models.PASSED},
93-
Failure: []string{models.FAILED, models.ERROR, models.STOPPED, models.ERROR},
94-
Default: devops.RESULT_DEFAULT,
92+
Success: []string{models.SUCCESSFUL, models.COMPLETED, models.PASSED},
93+
Failure: []string{models.FAILED, models.ERROR, models.STOPPED},
94+
Canceled: []string{models.CANCELLED},
95+
Skipped: []string{models.SKIPPED},
96+
Default: devops.RESULT_DEFAULT,
9597
}, bitbucketPipeline.Result),
9698
OriginalResult: bitbucketPipeline.Result,
9799
Status: devops.GetStatus(&devops.StatusRule{
98-
Done: []string{models.COMPLETED, models.SUCCESSFUL, models.PASSED, models.FAILED, models.ERROR, models.STOPPED, models.HALTED},
100+
Done: []string{models.COMPLETED, models.SUCCESSFUL, models.PASSED, models.FAILED, models.ERROR, models.STOPPED, models.HALTED, models.CANCELLED, models.SKIPPED},
99101
InProgress: []string{models.IN_PROGRESS, models.PENDING, models.RUNNING, models.PAUSED, models.BUILDING},
100102
Default: devops.STATUS_OTHER,
101103
}, bitbucketPipeline.Status),

backend/plugins/bitbucket/tasks/pipeline_steps_convertor.go

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -79,13 +79,15 @@ func ConvertPipelineSteps(taskCtx plugin.SubTaskContext) errors.Error {
7979
Name: bitbucketPipelineStep.Name,
8080
PipelineId: pipelineIdGen.Generate(data.Options.ConnectionId, bitbucketPipelineStep.PipelineId),
8181
Result: devops.GetResult(&devops.ResultRule{
82-
Success: []string{models.SUCCESSFUL, models.COMPLETED},
83-
Failure: []string{models.FAILED, models.ERROR, models.STOPPED},
84-
Default: devops.RESULT_DEFAULT,
82+
Success: []string{models.SUCCESSFUL, models.COMPLETED},
83+
Failure: []string{models.FAILED, models.ERROR, models.STOPPED},
84+
Canceled: []string{models.CANCELLED},
85+
Skipped: []string{models.SKIPPED},
86+
Default: devops.RESULT_DEFAULT,
8587
}, bitbucketPipelineStep.Result),
8688
OriginalResult: bitbucketPipelineStep.Result,
8789
Status: devops.GetStatus(&devops.StatusRule{
88-
Done: []string{models.COMPLETED, models.SUCCESSFUL, models.FAILED, models.ERROR, models.STOPPED},
90+
Done: []string{models.COMPLETED, models.SUCCESSFUL, models.FAILED, models.ERROR, models.STOPPED, models.CANCELLED, models.SKIPPED},
8991
InProgress: []string{models.IN_PROGRESS, models.PENDING, models.BUILDING, models.READY},
9092
Default: devops.STATUS_OTHER,
9193
}, bitbucketPipelineStep.State),

backend/plugins/circleci/tasks/job_converter.go

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -82,9 +82,11 @@ func ConvertJobs(taskCtx plugin.SubTaskContext) errors.Error {
8282
}, userTool.Status),
8383
OriginalStatus: userTool.Status,
8484
Result: devops.GetResult(&devops.ResultRule{
85-
Success: []string{"success"},
86-
Failure: []string{"failed", "failing", "error"}, // not_run,canceled
87-
Default: devops.RESULT_DEFAULT,
85+
Success: []string{"success"},
86+
Failure: []string{"failed", "failing", "error"},
87+
Canceled: []string{"canceled"},
88+
Skipped: []string{"not_run"},
89+
Default: devops.RESULT_DEFAULT,
8890
}, userTool.Status),
8991
Type: data.RegexEnricher.ReturnNameIfMatched(devops.DEPLOYMENT, userTool.Name),
9092
Environment: data.RegexEnricher.ReturnNameIfOmittedOrMatched(devops.PRODUCTION, userTool.Name),

backend/plugins/circleci/tasks/workflow_converter.go

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -85,9 +85,11 @@ func ConvertWorkflows(taskCtx plugin.SubTaskContext) errors.Error {
8585
}, userTool.Status),
8686
OriginalStatus: userTool.Status,
8787
Result: devops.GetResult(&devops.ResultRule{
88-
Success: []string{"success"},
89-
Failure: []string{"failed", "failing", "error"}, // not_run,canceled
90-
Default: devops.RESULT_DEFAULT,
88+
Success: []string{"success"},
89+
Failure: []string{"failed", "failing", "error"},
90+
Canceled: []string{"canceled"},
91+
Skipped: []string{"not_run"},
92+
Default: devops.RESULT_DEFAULT,
9193
}, userTool.Status),
9294
Type: data.RegexEnricher.ReturnNameIfMatched(devops.DEPLOYMENT, userTool.Name),
9395
Environment: data.RegexEnricher.ReturnNameIfOmittedOrMatched(devops.PRODUCTION, userTool.Name),

backend/plugins/github/tasks/cicd_job_convertor.go

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -105,9 +105,11 @@ func ConvertJobs(taskCtx plugin.SubTaskContext) (err errors.Error) {
105105
Type: line.Type,
106106
Environment: line.Environment,
107107
Result: devops.GetResult(&devops.ResultRule{
108-
Success: []string{StatusSuccess},
109-
Failure: []string{StatusFailure, StatusCancelled, StatusTimedOut, StatusStartUpFailure},
110-
Default: devops.RESULT_DEFAULT,
108+
Success: []string{StatusSuccess},
109+
Failure: []string{StatusFailure, StatusTimedOut, StatusStartUpFailure},
110+
Canceled: []string{StatusCancelled},
111+
Skipped: []string{StatusSkipped},
112+
Default: devops.RESULT_DEFAULT,
111113
}, line.Conclusion),
112114
OriginalResult: line.Conclusion,
113115
Status: devops.GetStatus(&devops.StatusRule{

0 commit comments

Comments
 (0)