Skip to content

Commit 63a2a55

Browse files
author
IPC3
committed
warning message added for go and rust builder
1 parent 57a4b6a commit 63a2a55

File tree

4 files changed

+37
-13
lines changed

4 files changed

+37
-13
lines changed

pkg/pipelines/tekton/pipelines_pac_provider.go

+7-1
Original file line numberDiff line numberDiff line change
@@ -30,9 +30,14 @@ func (pp *PipelinesProvider) ConfigurePAC(ctx context.Context, f fn.Function, me
3030
return fmt.Errorf("incorrect type of pipelines metadata: %T", metadata)
3131
}
3232

33-
if err := validatePipeline(f); err != nil {
33+
var warningMsg string
34+
var err error
35+
if warningMsg, err = validatePipeline(f); err != nil {
3436
return err
3537
}
38+
if warningMsg != "" {
39+
pp.progressListener.Increment(warningMsg)
40+
}
3641

3742
if data.ConfigureLocalResources {
3843
if err := pp.createLocalPACResources(ctx, f); err != nil {
@@ -240,3 +245,4 @@ func (pp *PipelinesProvider) createRemotePACResources(ctx context.Context, f fn.
240245

241246
return nil
242247
}
248+

pkg/pipelines/tekton/pipelines_provider.go

+7-2
Original file line numberDiff line numberDiff line change
@@ -118,10 +118,14 @@ func NewPipelinesProvider(opts ...Opt) *PipelinesProvider {
118118
// After the PipelineRun is being initialized, the progress of the PipelineRun is being watched and printed to the output.
119119
func (pp *PipelinesProvider) Run(ctx context.Context, f fn.Function) error {
120120
pp.progressListener.Increment("Creating Pipeline resources")
121-
122-
if err := validatePipeline(f); err != nil {
121+
var warningMsg string
122+
var err error
123+
if warningMsg, err = validatePipeline(f); err != nil {
123124
return err
124125
}
126+
if warningMsg != "" {
127+
pp.progressListener.Increment(warningMsg)
128+
}
125129

126130
client, namespace, err := NewTektonClientAndResolvedNamespace(pp.namespace)
127131
if err != nil {
@@ -533,3 +537,4 @@ func createPipelinePersistentVolumeClaim(ctx context.Context, f fn.Function, nam
533537
}
534538
return nil
535539
}
540+

pkg/pipelines/tekton/validate.go

+21-9
Original file line numberDiff line numberDiff line change
@@ -17,32 +17,44 @@ var (
1717
)
1818

1919
type ErrRuntimeNotSupported struct {
20-
Runtime string
20+
Runtime string
21+
CustomBuilder bool
2122
}
2223

2324
func (e ErrRuntimeNotSupported) Error() string {
24-
return fmt.Sprintf("runtime %q is not supported for on cluster build", e.Runtime)
25+
if e.CustomBuilder {
26+
return fmt.Sprintf("runtime %q is not supported for on cluster build with default builders, "+
27+
"continuing with the custom builder provided", e.Runtime)
28+
} else {
29+
return fmt.Sprintf("runtime %q is not supported for on cluster build with default builders", e.Runtime)
30+
}
2531
}
2632

27-
func validatePipeline(f fn.Function) error {
33+
func validatePipeline(f fn.Function) (string, error) {
34+
var warningMsg string
2835
if f.Build.Builder == builders.Pack {
2936
if f.Runtime == "" {
30-
return ErrRuntimeRequired
37+
return "", ErrRuntimeRequired
3138
}
3239

3340
if f.Runtime == "go" || f.Runtime == "rust" {
34-
return ErrRuntimeNotSupported{f.Runtime}
41+
if len(f.Build.BuilderImages) > 0 {
42+
warningMsg = ErrRuntimeNotSupported{f.Runtime, true}.Error()
43+
} else {
44+
return "", ErrRuntimeNotSupported{f.Runtime, false}
45+
}
3546
}
3647

3748
if len(f.Build.Buildpacks) > 0 {
38-
return ErrBuilpacksNotSupported
49+
return "", ErrBuilpacksNotSupported
3950
}
4051
} else if f.Build.Builder == builders.S2I {
4152
_, err := s2i.BuilderImage(f, builders.S2I)
42-
return err
53+
return "", err
4354
} else {
44-
return builders.ErrUnknownBuilder{Name: f.Build.Builder}
55+
return "", builders.ErrUnknownBuilder{Name: f.Build.Builder}
4556
}
4657

47-
return nil
58+
return warningMsg, nil
4859
}
60+

pkg/pipelines/tekton/validate_test.go

+2-1
Original file line numberDiff line numberDiff line change
@@ -108,11 +108,12 @@ func Test_validatePipeline(t *testing.T) {
108108

109109
for _, tt := range tests {
110110
t.Run(tt.name, func(t *testing.T) {
111-
err := validatePipeline(tt.function)
111+
_, err := validatePipeline(tt.function)
112112
if (err != nil) != tt.wantErr {
113113
t.Errorf("validatePipeline() error = %v, wantErr %v", err, tt.wantErr)
114114
return
115115
}
116116
})
117117
}
118118
}
119+

0 commit comments

Comments
 (0)