/
manifest_preferences.go
30 lines (25 loc) · 1.29 KB
/
manifest_preferences.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
package manifest
// EstafetteManifestPreferences is used to configure validation rules for the manifest
type EstafetteManifestPreferences struct {
LabelRegexes map[string]string `yaml:"labelRegexes,omitempty" json:"labelRegexes,omitempty"`
BuilderOperatingSystems []OperatingSystem `yaml:"builderOperatingSystems,omitempty" json:"builderOperatingSystems,omitempty"`
BuilderTracksPerOperatingSystem map[OperatingSystem][]string `yaml:"builderTracksPerOperatingSystem,omitempty" json:"builderTracksPerOperatingSystem,omitempty"`
DefaultBranch string `yaml:"defaultBranch,omitempty" json:"defaultBranch,omitempty"`
}
func (p *EstafetteManifestPreferences) SetDefaults() {
if p.LabelRegexes == nil {
p.LabelRegexes = make(map[string]string)
}
if len(p.BuilderOperatingSystems) == 0 {
p.BuilderOperatingSystems = []OperatingSystem{OperatingSystemLinux, OperatingSystemWindows}
}
if len(p.BuilderTracksPerOperatingSystem) == 0 {
p.BuilderTracksPerOperatingSystem = map[OperatingSystem][]string{
OperatingSystemLinux: {"stable", "beta", "dev"},
OperatingSystemWindows: {"nanoserver-1809-stable", "nanoserver-1809-beta", "nanoserver-1809-dev"},
}
}
if p.DefaultBranch == "" {
p.DefaultBranch = "master"
}
}