From 2973c1d51cdfaed2aaa11cde5a8af5593c41588a Mon Sep 17 00:00:00 2001 From: huanghongbo-hhb Date: Thu, 21 May 2026 16:27:43 +0800 Subject: [PATCH 1/4] fix: preserve long test and scanning name compatibility Signed-off-by: huanghongbo-hhb --- pkg/microservice/aslan/core/common/util/workflow.go | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/pkg/microservice/aslan/core/common/util/workflow.go b/pkg/microservice/aslan/core/common/util/workflow.go index c4be944872..b61ff6b47d 100644 --- a/pkg/microservice/aslan/core/common/util/workflow.go +++ b/pkg/microservice/aslan/core/common/util/workflow.go @@ -49,12 +49,20 @@ func GenTestingWorkflowName(testingName string) string { return fmt.Sprintf(setting.TestWorkflowNamingConvention, testingName) } +func normalizeWorkflowJobName(name string) string { + jobName := []rune(strings.ToLower(name)) + if len(jobName) > 32 { + jobName = jobName[:32] + } + return strings.TrimSuffix(string(jobName), "-") +} + func GenerateTestingModuleJobName(name string) string { - return strings.ToLower(name) + return normalizeWorkflowJobName(name) } func GenerateScanningModuleJobName(name string) string { - return strings.ToLower(name) + return normalizeWorkflowJobName(name) } func ValidateGeneratedWorkflowJobName(name string, generator func(string) string) error { From 52a51eb8de1c2fe7864c13e96f5a77c0396097ba Mon Sep 17 00:00:00 2001 From: huanghongbo-hhb Date: Thu, 21 May 2026 17:16:20 +0800 Subject: [PATCH 2/4] fix: keep long test and scanning names executable Signed-off-by: huanghongbo-hhb --- .../aslan/core/common/util/workflow.go | 23 +++++++++++-------- .../core/workflow/testing/service/scanning.go | 2 +- .../workflow/testing/service/test_task.go | 2 +- 3 files changed, 15 insertions(+), 12 deletions(-) diff --git a/pkg/microservice/aslan/core/common/util/workflow.go b/pkg/microservice/aslan/core/common/util/workflow.go index b61ff6b47d..cf0c4835ab 100644 --- a/pkg/microservice/aslan/core/common/util/workflow.go +++ b/pkg/microservice/aslan/core/common/util/workflow.go @@ -49,20 +49,23 @@ func GenTestingWorkflowName(testingName string) string { return fmt.Sprintf(setting.TestWorkflowNamingConvention, testingName) } -func normalizeWorkflowJobName(name string) string { - jobName := []rune(strings.ToLower(name)) - if len(jobName) > 32 { - jobName = jobName[:32] - } - return strings.TrimSuffix(string(jobName), "-") -} - func GenerateTestingModuleJobName(name string) string { - return normalizeWorkflowJobName(name) + return strings.ToLower(name) } func GenerateScanningModuleJobName(name string) string { - return normalizeWorkflowJobName(name) + return strings.ToLower(name) +} + +func GenerateExecutionModuleJobName(name string) string { + jobName := []rune(strings.ToLower(name)) + if len(jobName) > 32 { + jobName = jobName[:32] + if len(jobName) > 0 && jobName[len(jobName)-1] == '-' { + jobName = jobName[:len(jobName)-1] + } + } + return string(jobName) } func ValidateGeneratedWorkflowJobName(name string, generator func(string) string) error { diff --git a/pkg/microservice/aslan/core/workflow/testing/service/scanning.go b/pkg/microservice/aslan/core/workflow/testing/service/scanning.go index 4475ce3ceb..cacf7b2b56 100644 --- a/pkg/microservice/aslan/core/workflow/testing/service/scanning.go +++ b/pkg/microservice/aslan/core/workflow/testing/service/scanning.go @@ -543,7 +543,7 @@ func generateCustomWorkflowFromScanningModule(scanInfo *commonmodels.Scanning, a job := make([]*commonmodels.Job, 0) job = append(job, &commonmodels.Job{ - Name: commonutil.GenerateScanningModuleJobName(scanInfo.Name), + Name: commonutil.GenerateExecutionModuleJobName(scanInfo.Name), JobType: config.JobZadigScanning, Skipped: false, Spec: &commonmodels.ZadigScanningJobSpec{ diff --git a/pkg/microservice/aslan/core/workflow/testing/service/test_task.go b/pkg/microservice/aslan/core/workflow/testing/service/test_task.go index c2e84b1b27..0736dc34c9 100644 --- a/pkg/microservice/aslan/core/workflow/testing/service/test_task.go +++ b/pkg/microservice/aslan/core/workflow/testing/service/test_task.go @@ -340,7 +340,7 @@ func generateCustomWorkflowFromTestingModule(testInfo *commonmodels.Testing, arg job := make([]*commonmodels.Job, 0) job = append(job, &commonmodels.Job{ - Name: util.GenerateTestingModuleJobName(testInfo.Name), + Name: util.GenerateExecutionModuleJobName(testInfo.Name), JobType: config.JobZadigTesting, Skipped: false, Spec: &commonmodels.ZadigTestingJobSpec{ From b31ffecb332dd065b517290ebd12805e0a034a7d Mon Sep 17 00:00:00 2001 From: huanghongbo-hhb Date: Thu, 21 May 2026 17:33:22 +0800 Subject: [PATCH 3/4] fix: allow long test and scanning names during execution Signed-off-by: huanghongbo-hhb --- .../aslan/core/common/util/workflow.go | 9 +-------- .../service/workflow/controller/workflow.go | 18 +++++++++++++++++- 2 files changed, 18 insertions(+), 9 deletions(-) diff --git a/pkg/microservice/aslan/core/common/util/workflow.go b/pkg/microservice/aslan/core/common/util/workflow.go index cf0c4835ab..bd2ef90483 100644 --- a/pkg/microservice/aslan/core/common/util/workflow.go +++ b/pkg/microservice/aslan/core/common/util/workflow.go @@ -58,14 +58,7 @@ func GenerateScanningModuleJobName(name string) string { } func GenerateExecutionModuleJobName(name string) string { - jobName := []rune(strings.ToLower(name)) - if len(jobName) > 32 { - jobName = jobName[:32] - if len(jobName) > 0 && jobName[len(jobName)-1] == '-' { - jobName = jobName[:len(jobName)-1] - } - } - return string(jobName) + return strings.ToLower(name) } func ValidateGeneratedWorkflowJobName(name string, generator func(string) string) error { diff --git a/pkg/microservice/aslan/core/workflow/service/workflow/controller/workflow.go b/pkg/microservice/aslan/core/workflow/service/workflow/controller/workflow.go index cc48b3b19e..3c39346a22 100644 --- a/pkg/microservice/aslan/core/workflow/service/workflow/controller/workflow.go +++ b/pkg/microservice/aslan/core/workflow/service/workflow/controller/workflow.go @@ -462,7 +462,7 @@ func (w *Workflow) Validate(isExecution bool) error { return e.ErrLintWorkflow.AddDesc(fmt.Sprintf("duplicated stage name: %s", stage.Name)) } for _, job := range stage.Jobs { - if match := reg.MatchString(job.Name); !match { + if match := reg.MatchString(job.Name); !match && !allowBuiltInTestingOrScanningJobName(w.WorkflowV4, job) { return e.ErrLintWorkflow.AddDesc(fmt.Sprintf("job name [%s] did not match %s", job.Name, setting.JobNameRegx)) } if _, ok := jobNameMap[job.Name]; !ok { @@ -491,6 +491,22 @@ func (w *Workflow) Validate(isExecution bool) error { return nil } +func allowBuiltInTestingOrScanningJobName(workflow *commonmodels.WorkflowV4, job *commonmodels.Job) bool { + if workflow == nil || job == nil { + return false + } + + if job.JobType == config.JobZadigTesting && strings.HasPrefix(workflow.Name, "zadig-testing-") { + return true + } + + if job.JobType == config.JobZadigScanning && strings.HasPrefix(workflow.Name, "zadig-scanning-") { + return true + } + + return false +} + func (w *Workflow) SetRepo(repo *types.Repository) error { for _, stage := range w.Stages { for _, job := range stage.Jobs { From bc144272faf119aed467488ec4b532086f22c30a Mon Sep 17 00:00:00 2001 From: huanghongbo-hhb Date: Fri, 22 May 2026 09:49:09 +0800 Subject: [PATCH 4/4] fix: generate valid execution job names for test and scan Signed-off-by: huanghongbo-hhb --- .../aslan/core/common/util/workflow.go | 9 ++++++++- .../service/workflow/controller/workflow.go | 18 +----------------- 2 files changed, 9 insertions(+), 18 deletions(-) diff --git a/pkg/microservice/aslan/core/common/util/workflow.go b/pkg/microservice/aslan/core/common/util/workflow.go index bd2ef90483..cf0c4835ab 100644 --- a/pkg/microservice/aslan/core/common/util/workflow.go +++ b/pkg/microservice/aslan/core/common/util/workflow.go @@ -58,7 +58,14 @@ func GenerateScanningModuleJobName(name string) string { } func GenerateExecutionModuleJobName(name string) string { - return strings.ToLower(name) + jobName := []rune(strings.ToLower(name)) + if len(jobName) > 32 { + jobName = jobName[:32] + if len(jobName) > 0 && jobName[len(jobName)-1] == '-' { + jobName = jobName[:len(jobName)-1] + } + } + return string(jobName) } func ValidateGeneratedWorkflowJobName(name string, generator func(string) string) error { diff --git a/pkg/microservice/aslan/core/workflow/service/workflow/controller/workflow.go b/pkg/microservice/aslan/core/workflow/service/workflow/controller/workflow.go index 3c39346a22..cc48b3b19e 100644 --- a/pkg/microservice/aslan/core/workflow/service/workflow/controller/workflow.go +++ b/pkg/microservice/aslan/core/workflow/service/workflow/controller/workflow.go @@ -462,7 +462,7 @@ func (w *Workflow) Validate(isExecution bool) error { return e.ErrLintWorkflow.AddDesc(fmt.Sprintf("duplicated stage name: %s", stage.Name)) } for _, job := range stage.Jobs { - if match := reg.MatchString(job.Name); !match && !allowBuiltInTestingOrScanningJobName(w.WorkflowV4, job) { + if match := reg.MatchString(job.Name); !match { return e.ErrLintWorkflow.AddDesc(fmt.Sprintf("job name [%s] did not match %s", job.Name, setting.JobNameRegx)) } if _, ok := jobNameMap[job.Name]; !ok { @@ -491,22 +491,6 @@ func (w *Workflow) Validate(isExecution bool) error { return nil } -func allowBuiltInTestingOrScanningJobName(workflow *commonmodels.WorkflowV4, job *commonmodels.Job) bool { - if workflow == nil || job == nil { - return false - } - - if job.JobType == config.JobZadigTesting && strings.HasPrefix(workflow.Name, "zadig-testing-") { - return true - } - - if job.JobType == config.JobZadigScanning && strings.HasPrefix(workflow.Name, "zadig-scanning-") { - return true - } - - return false -} - func (w *Workflow) SetRepo(repo *types.Repository) error { for _, stage := range w.Stages { for _, job := range stage.Jobs {