mirror of
https://github.com/goreleaser/goreleaser.git
synced 2025-03-17 20:47:50 +02:00
fix: archive ids (#3052)
* fix: archive ids Signed-off-by: Carlos A Becker <caarlos0@gmail.com> * test: add archive id filter test Signed-off-by: Carlos A Becker <caarlos0@gmail.com>
This commit is contained in:
parent
38bc6b504e
commit
922992ce76
@ -74,11 +74,6 @@ func (Pipe) Default(ctx *context.Context) error {
|
||||
archive.NameTemplate = defaultBinaryNameTemplate
|
||||
}
|
||||
}
|
||||
if len(archive.Builds) == 0 {
|
||||
for _, build := range ctx.Config.Builds {
|
||||
archive.Builds = append(archive.Builds, build.ID)
|
||||
}
|
||||
}
|
||||
ids.Inc(archive.ID)
|
||||
}
|
||||
return ids.Validate()
|
||||
@ -89,15 +84,14 @@ func (Pipe) Run(ctx *context.Context) error {
|
||||
g := semerrgroup.New(ctx.Parallelism)
|
||||
for i, archive := range ctx.Config.Archives {
|
||||
archive := archive
|
||||
artifacts := ctx.Artifacts.Filter(
|
||||
artifact.And(
|
||||
artifact.Or(
|
||||
artifact.ByType(artifact.Binary),
|
||||
artifact.ByType(artifact.UniversalBinary),
|
||||
),
|
||||
artifact.ByIDs(archive.Builds...),
|
||||
),
|
||||
).GroupByPlatform()
|
||||
filter := []artifact.Filter{artifact.Or(
|
||||
artifact.ByType(artifact.Binary),
|
||||
artifact.ByType(artifact.UniversalBinary),
|
||||
)}
|
||||
if len(archive.Builds) > 0 {
|
||||
filter = append(filter, artifact.ByIDs(archive.Builds...))
|
||||
}
|
||||
artifacts := ctx.Artifacts.Filter(artifact.And(filter...)).GroupByPlatform()
|
||||
if err := checkArtifacts(artifacts); err != nil && !archive.AllowDifferentBinaryCount {
|
||||
return fmt.Errorf("invalid archive: %d: %w", i, ErrArchiveDifferentBinaryCount)
|
||||
}
|
||||
|
@ -297,10 +297,23 @@ func TestRunPipeNoBinaries(t *testing.T) {
|
||||
ctx := context.New(config.Project{
|
||||
Dist: dist,
|
||||
ProjectName: "foobar",
|
||||
Archives: []config.Archive{{}},
|
||||
Archives: []config.Archive{{
|
||||
Builds: []string{"not-default"},
|
||||
}},
|
||||
})
|
||||
ctx.Version = "0.0.1"
|
||||
ctx.Git.CurrentTag = "v0.0.1"
|
||||
ctx.Artifacts.Add(&artifact.Artifact{
|
||||
Goos: "linux",
|
||||
Goarch: "amd64",
|
||||
Name: "bin/mybin",
|
||||
Path: filepath.Join(dist, "linuxamd64", "bin", "mybin"),
|
||||
Type: artifact.Binary,
|
||||
Extra: map[string]interface{}{
|
||||
artifact.ExtraBinary: "bin/mybin",
|
||||
artifact.ExtraID: "default",
|
||||
},
|
||||
})
|
||||
require.NoError(t, Pipe{}.Run(ctx))
|
||||
}
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user