Skip to content

feat(tibuild): support single platform build #253

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 4 commits into from
Apr 7, 2025
Merged
Show file tree
Hide file tree
Changes from 2 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 3 additions & 0 deletions tibuild/pkg/rest/service/cloud_event_client.go
Original file line number Diff line number Diff line change
Expand Up @@ -84,6 +84,9 @@ func newDevBuildCloudEvent(dev DevBuild) (*cloudevents.Event, error) {
if dev.Spec.BuilderImg != "" {
event.SetExtension("paramBuilderImage", dev.Spec.BuilderImg)
}
if dev.Spec.Platform != "" {
event.SetExtension("paramPlatform", dev.Spec.Platform)
}

return &event, nil
}
Expand Down
12 changes: 5 additions & 7 deletions tibuild/pkg/rest/service/dev_build_service.go
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@ import (
"context"
"fmt"
"regexp"
"slices"
"strconv"
"strings"
"time"
Expand Down Expand Up @@ -241,13 +242,7 @@ func fillForFIPS(spec *DevBuildSpec) {

func hasFIPS(feature string) bool {
features := strings.Split(feature, " ")
for _, f := range features {
if f == FIPS_FEATURE {
return true
}
}
return false

return slices.Contains(features, FIPS_FEATURE)
}

func validateReq(req DevBuild) error {
Expand Down Expand Up @@ -280,6 +275,9 @@ func validateReq(req DevBuild) error {
return fmt.Errorf("target image shall be empty for hotfix")
}
}
if spec.PipelineEngine == JenkinsEngine && spec.Platform != "" {
return fmt.Errorf("platform %s is not supported in %s engine", spec.Platform, spec.PipelineEngine)
}
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

medium

This error message is good, but could be improved by providing more context or a link to documentation explaining why platforms are not supported in the Jenkins engine. This will help users understand the limitation and how to address it.

        return fmt.Errorf("platform %s is not supported in %s engine.  See [link to docs] for more information.", spec.Platform, spec.PipelineEngine)

return nil
}

Expand Down
13 changes: 7 additions & 6 deletions tibuild/pkg/rest/service/model.go
Original file line number Diff line number Diff line change
Expand Up @@ -173,16 +173,17 @@ type DevBuildSpec struct {
GitHash string `json:"gitHash,omitempty" gorm:"type:varchar(64)"`
Version string `json:"version"`
Edition ProductEdition `json:"edition"`
Platform string `json:"platform,omitempty"` // "linux/amd64" or "linux/arm64" or "darwin/amd64" or "darwin/arm64" or empty for all.
PluginGitRef string `json:"pluginGitRef,omitempty"`
BuildEnv string `json:"buildEnv,omitempty" gorm:"type:varchar(128)"`
ProductDockerfile string `json:"productDockerfile,omitempty" gorm:"type:varchar(128)"`
ProductBaseImg string `json:"productBaseImg,omitempty" gorm:"type:varchar(128)"`
BuilderImg string `json:"builderImg,omitempty" gorm:"type:varchar(128)"`
GithubRepo string `json:"githubRepo,omitempty" gorm:"type:varchar(64)"`
BuildEnv string `json:"buildEnv,omitempty" gorm:"type:varchar(256)"`
ProductDockerfile string `json:"productDockerfile,omitempty" gorm:"type:varchar(256)"`
ProductBaseImg string `json:"productBaseImg,omitempty" gorm:"type:varchar(256)"`
BuilderImg string `json:"builderImg,omitempty" gorm:"type:varchar(256)"`
GithubRepo string `json:"githubRepo,omitempty" gorm:"type:varchar(128)"`
IsPushGCR bool `json:"isPushGCR,omitempty"`
Features string `json:"features,omitempty" gorm:"type:varchar(128)"`
IsHotfix bool `json:"isHotfix,omitempty"`
TargetImg string `json:"targetImg,omitempty" gorm:"type:varchar(128)"`
TargetImg string `json:"targetImg,omitempty" gorm:"type:varchar(256)"`
PipelineEngine PipelineEngine `json:"pipelineEngine,omitempty" gorm:"type:varchar(16)"`
prNumber int
prBaseRef string
Expand Down
Loading