@@ -34,14 +34,17 @@ const (
3434)
3535
3636type Distribution struct {
37- BaseName string
38- FullName string // dist or dist-fips
39- Fips bool
40- Goos []string
41- IgnoredBuilds []config.IgnoredBuild
42- IncludeConfig bool
43- SkipBinaries bool
44- SkipArchives bool
37+ BaseName string
38+ FullName string // dist or dist-fips
39+ Fips bool
40+ Goos []string
41+ IgnoredBuilds []config.IgnoredBuild
42+ IncludeConfig bool
43+ SkipPackages bool
44+ SkipArchives bool
45+ SkipUploadToBlobStorage bool
46+ SkipChecksums bool
47+ SkipSigning bool
4548}
4649
4750var (
@@ -55,18 +58,14 @@ func Generate(distFlag string, fips bool) config.Project {
5558 dist := NewDistribution (distFlag , fips )
5659
5760 return config.Project {
58- ProjectName : projectName ,
59- Checksum : config.Checksum {
60- NameTemplate : "{{ .ArtifactName }}.sum" ,
61- Split : true ,
62- Algorithm : "sha256" ,
63- },
61+ ProjectName : projectName ,
62+ Checksum : Checksum (dist ),
6463 Builds : Builds (dist ),
6564 Archives : Archives (dist ),
6665 NFPMs : Packages (dist ),
6766 Dockers : DockerImages (dist ),
6867 DockerManifests : DockerManifests (dist ),
69- Signs : Sign ( ),
68+ Signs : Signs ( dist ),
7069 Version : 2 ,
7170 Changelog : config.Changelog {Disable : "true" },
7271 Snapshot : config.Snapshot {
@@ -97,34 +96,48 @@ func NewDistribution(baseDist string, fips bool) Distribution {
9796 IgnoredBuilds : []config.IgnoredBuild {
9897 {Goos : "windows" , Goarch : "arm64" },
9998 },
100- IncludeConfig : true ,
101- SkipBinaries : false ,
102- SkipArchives : false ,
99+ IncludeConfig : true ,
100+ SkipUploadToBlobStorage : false ,
101+ SkipPackages : false ,
102+ SkipArchives : false ,
103+ SkipSigning : false ,
104+ SkipChecksums : false ,
103105 }
104106
105- if baseDist == K8sDistro {
107+ if isNoConfigDistro ( baseDist ) {
106108 dist .IncludeConfig = false
107109 }
108110
109- if baseDist == K8sDistro || fips {
111+ if isImageOnlyDistro ( baseDist , fips ) {
110112 dist .Goos = []string {"linux" }
111113 dist .IgnoredBuilds = nil
112- dist .SkipBinaries = true
114+ dist .SkipPackages = true
113115 dist .SkipArchives = true
116+ dist .SkipUploadToBlobStorage = true
117+ dist .SkipSigning = true
118+ dist .SkipChecksums = true
114119 }
115120
116121 if baseDist == ExperimentalDistro {
117122 dist .Goos = []string {"linux" }
118123 dist .IgnoredBuilds = nil
119- dist .IncludeConfig = false
120- dist .SkipBinaries = true
124+ dist .SkipPackages = true
125+ dist .SkipUploadToBlobStorage = true
121126 }
122127
123128 return dist
124129}
125130
131+ func isNoConfigDistro (dist string ) bool {
132+ return dist == K8sDistro || dist == ExperimentalDistro
133+ }
134+
135+ func isImageOnlyDistro (dist string , fips bool ) bool {
136+ return dist == K8sDistro || fips
137+ }
138+
126139func Blobs (dist Distribution ) []config.Blob {
127- if dist .SkipBinaries {
140+ if dist .SkipUploadToBlobStorage {
128141 return nil
129142 }
130143
@@ -209,7 +222,12 @@ func Build(dist Distribution) config.Build {
209222
210223func Archives (dist Distribution ) []config.Archive {
211224 if dist .SkipArchives {
212- return nil
225+ // https://goreleaser.com/customization/archive/#do-not-archive
226+ return []config.Archive {
227+ {
228+ Formats : []string {"binary" },
229+ },
230+ }
213231 }
214232
215233 return []config.Archive {
@@ -243,7 +261,7 @@ func Archive(dist Distribution) config.Archive {
243261}
244262
245263func Packages (dist Distribution ) []config.NFPM {
246- if dist .SkipBinaries {
264+ if dist .SkipPackages {
247265 return nil
248266 }
249267
@@ -411,21 +429,42 @@ func DockerManifest(version string, dist Distribution) config.DockerManifest {
411429 }
412430}
413431
414- func Sign () []config.Sign {
432+ func Checksum (dist Distribution ) config.Checksum {
433+ if dist .SkipChecksums {
434+ return config.Checksum {
435+ Disable : true ,
436+ }
437+ }
438+ return config.Checksum {
439+ NameTemplate : "{{ .ArtifactName }}.sum" ,
440+ Split : true ,
441+ Algorithm : "sha256" ,
442+ }
443+ }
444+
445+ func Signs (dist Distribution ) []config.Sign {
446+ if dist .SkipSigning {
447+ return nil
448+ }
449+
415450 return []config.Sign {
416- {
417- Artifacts : "all" ,
418- Signature : "${artifact}.asc" ,
419- Args : []string {
420- "--batch" ,
421- "-u" ,
422- "{{ .Env.GPG_FINGERPRINT }}" ,
423- "--output" ,
424- "${signature}" ,
425- "--detach-sign" ,
426- "--armor" ,
427- "${artifact}" ,
428- },
451+ SignAllArtifacts (),
452+ }
453+ }
454+
455+ func SignAllArtifacts () config.Sign {
456+ return config.Sign {
457+ Artifacts : "all" ,
458+ Signature : "${artifact}.asc" ,
459+ Args : []string {
460+ "--batch" ,
461+ "-u" ,
462+ "{{ .Env.GPG_FINGERPRINT }}" ,
463+ "--output" ,
464+ "${signature}" ,
465+ "--detach-sign" ,
466+ "--armor" ,
467+ "${artifact}" ,
429468 },
430469 }
431470}
0 commit comments