Skip to content

Commit 72bb528

Browse files
authored
feat(tibuild): support single platform build (#253)
1 parent 2db500e commit 72bb528

File tree

3 files changed

+16
-13
lines changed

3 files changed

+16
-13
lines changed

tibuild/pkg/rest/service/cloud_event_client.go

+3
Original file line numberDiff line numberDiff line change
@@ -84,6 +84,9 @@ func newDevBuildCloudEvent(dev DevBuild) (*cloudevents.Event, error) {
8484
if dev.Spec.BuilderImg != "" {
8585
event.SetExtension("paramBuilderImage", dev.Spec.BuilderImg)
8686
}
87+
if dev.Spec.Platform != "" {
88+
event.SetExtension("paramPlatform", dev.Spec.Platform)
89+
}
8790

8891
return &event, nil
8992
}

tibuild/pkg/rest/service/dev_build_service.go

+6-7
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,10 @@ package service
22

33
import (
44
"context"
5+
"errors"
56
"fmt"
67
"regexp"
8+
"slices"
79
"strconv"
810
"strings"
911
"time"
@@ -241,13 +243,7 @@ func fillForFIPS(spec *DevBuildSpec) {
241243

242244
func hasFIPS(feature string) bool {
243245
features := strings.Split(feature, " ")
244-
for _, f := range features {
245-
if f == FIPS_FEATURE {
246-
return true
247-
}
248-
}
249-
return false
250-
246+
return slices.Contains(features, FIPS_FEATURE)
251247
}
252248

253249
func validateReq(req DevBuild) error {
@@ -280,6 +276,9 @@ func validateReq(req DevBuild) error {
280276
return fmt.Errorf("target image shall be empty for hotfix")
281277
}
282278
}
279+
if spec.PipelineEngine == JenkinsEngine && spec.Platform != "" {
280+
return errors.New("cannot set platform when pipeline engine is Jenkins")
281+
}
283282
return nil
284283
}
285284

tibuild/pkg/rest/service/model.go

+7-6
Original file line numberDiff line numberDiff line change
@@ -173,16 +173,17 @@ type DevBuildSpec struct {
173173
GitHash string `json:"gitHash,omitempty" gorm:"type:varchar(64)"`
174174
Version string `json:"version"`
175175
Edition ProductEdition `json:"edition"`
176+
Platform string `json:"platform,omitempty"` // "linux/amd64" or "linux/arm64" or "darwin/amd64" or "darwin/arm64" or empty for all platforms.
176177
PluginGitRef string `json:"pluginGitRef,omitempty"`
177-
BuildEnv string `json:"buildEnv,omitempty" gorm:"type:varchar(128)"`
178-
ProductDockerfile string `json:"productDockerfile,omitempty" gorm:"type:varchar(128)"`
179-
ProductBaseImg string `json:"productBaseImg,omitempty" gorm:"type:varchar(128)"`
180-
BuilderImg string `json:"builderImg,omitempty" gorm:"type:varchar(128)"`
181-
GithubRepo string `json:"githubRepo,omitempty" gorm:"type:varchar(64)"`
178+
BuildEnv string `json:"buildEnv,omitempty" gorm:"type:varchar(256)"`
179+
ProductDockerfile string `json:"productDockerfile,omitempty" gorm:"type:varchar(256)"`
180+
ProductBaseImg string `json:"productBaseImg,omitempty" gorm:"type:varchar(256)"`
181+
BuilderImg string `json:"builderImg,omitempty" gorm:"type:varchar(256)"`
182+
GithubRepo string `json:"githubRepo,omitempty" gorm:"type:varchar(128)"`
182183
IsPushGCR bool `json:"isPushGCR,omitempty"`
183184
Features string `json:"features,omitempty" gorm:"type:varchar(128)"`
184185
IsHotfix bool `json:"isHotfix,omitempty"`
185-
TargetImg string `json:"targetImg,omitempty" gorm:"type:varchar(128)"`
186+
TargetImg string `json:"targetImg,omitempty" gorm:"type:varchar(256)"`
186187
PipelineEngine PipelineEngine `json:"pipelineEngine,omitempty" gorm:"type:varchar(16)"`
187188
prNumber int
188189
prBaseRef string

0 commit comments

Comments
 (0)