Skip to content

Commit cf699ce

Browse files
feat: release specific build container
1 parent e142e11 commit cf699ce

File tree

3 files changed

+19
-1
lines changed

3 files changed

+19
-1
lines changed

artifactory/artifactory.go

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -167,14 +167,19 @@ func (artifactory *Artifactory) CreateBuildJob(
167167
return nil, fmt.Errorf("failed to marshal build flags: %w", err)
168168
}
169169

170+
buildContainer := request.GetBuildContainerImage()
171+
if len(buildContainer) == 0 {
172+
buildContainer = artifactory.BuildContainerImage
173+
}
174+
170175
job, err = artifactory.BuildJobsRepository.Create(BuildJobModel{
171176
Status: WaitingForBuild,
172177
CommitRef: request.Release,
173178
CommitHash: request.GetCommitHash(),
174179
Target: request.Target,
175180
Flags: optFlagsJSON,
176181
BuildFlags: buildFlagsJSON,
177-
ContainerImage: artifactory.BuildContainerImage,
182+
ContainerImage: buildContainer,
178183
BuildFlagsHash: request.HashTargetAndFlags(),
179184
AuditLogs: []AuditLogModel{
180185
{

artifactory/build_request.go

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -130,6 +130,10 @@ func (req *BuildRequest) GetBuildFlags() (*[]firmware.BuildFlag, error) {
130130
return &buildFlags, nil
131131
}
132132

133+
func (req *BuildRequest) GetBuildContainerImage() string {
134+
return req.defs.GetBuildContainer(req.Release)
135+
}
136+
133137
func (req *BuildRequest) GetCommitHash() string {
134138
return req.defs.GetCommitHashByRef(req.Release)
135139
}

targets/targets_def.go

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@ type Release struct {
2525
SHA string `json:"sha"`
2626
Remote *RemoteSHA `json:"remote,omitempty"`
2727
ExcludeTargets []string `json:"exclude_targets,omitempty"`
28+
BuildContainer string `json:"build_container,omitempty"`
2829
}
2930

3031
type OptionFlag struct {
@@ -168,6 +169,14 @@ func (def *TargetsDef) GetOptionBuildFlag(target, name string) string {
168169
return ""
169170
}
170171

172+
func (def *TargetsDef) GetBuildContainer(ref string) string {
173+
release, ok := def.Releases[ref]
174+
if !ok {
175+
return ""
176+
}
177+
return release.BuildContainer
178+
}
179+
171180
func SetTargets(defs *TargetsDef) {
172181
targetsDef.Store(defs)
173182
}

0 commit comments

Comments
 (0)