mirror of
https://github.com/goreleaser/goreleaser.git
synced 2025-03-17 20:47:50 +02:00
fix: improve artifact refresh and filtering
This commit is contained in:
parent
08851dce61
commit
af97e63dd3
@ -307,6 +307,13 @@ func New() *Artifacts {
|
||||
}
|
||||
}
|
||||
|
||||
// Refresh visits all artifacts and refreshes them.
|
||||
func (artifacts *Artifacts) Refresh() error {
|
||||
return artifacts.Visit(func(a *Artifact) error {
|
||||
return a.Refresh()
|
||||
})
|
||||
}
|
||||
|
||||
// List return the actual list of artifacts.
|
||||
func (artifacts *Artifacts) List() []*Artifact {
|
||||
artifacts.lock.Lock()
|
||||
|
@ -570,9 +570,7 @@ func TestRefresher(t *testing.T) {
|
||||
Type: Checksum,
|
||||
})
|
||||
|
||||
for _, item := range artifacts.List() {
|
||||
require.NoError(t, item.Refresh())
|
||||
}
|
||||
require.NoError(t, artifacts.Refresh())
|
||||
|
||||
bts, err := os.ReadFile(path)
|
||||
require.NoError(t, err)
|
||||
|
@ -21,12 +21,6 @@ func describeBody(ctx *context.Context) (bytes.Buffer, error) {
|
||||
|
||||
checksums := ctx.Artifacts.Filter(artifact.ByType(artifact.Checksum))
|
||||
|
||||
if err := checksums.Visit(func(a *artifact.Artifact) error {
|
||||
return a.Refresh()
|
||||
}); err != nil {
|
||||
return out, err
|
||||
}
|
||||
|
||||
checksumsList := checksums.List()
|
||||
switch len(checksumsList) {
|
||||
case 0:
|
||||
|
@ -71,6 +71,9 @@ func TestDescribeBodyMultipleChecksums(t *testing.T) {
|
||||
},
|
||||
})
|
||||
}
|
||||
|
||||
require.NoError(t, ctx.Artifacts.Refresh())
|
||||
|
||||
out, err := describeBody(ctx)
|
||||
require.NoError(t, err)
|
||||
|
||||
@ -116,6 +119,9 @@ Get GoReleaser Pro at https://goreleaser.com/pro
|
||||
},
|
||||
},
|
||||
})
|
||||
|
||||
require.NoError(t, ctx.Artifacts.Refresh())
|
||||
|
||||
out, err := describeBody(ctx)
|
||||
require.NoError(t, err)
|
||||
|
||||
|
@ -114,6 +114,9 @@ func doPublish(ctx *context.Context, client client.Client) error {
|
||||
log.WithField("tag", ctx.Git.CurrentTag).
|
||||
WithField("repo", ctx.Config.Release.GitHub.String()).
|
||||
Info("creating or updating release")
|
||||
if err := ctx.Artifacts.Refresh(); err != nil {
|
||||
return err
|
||||
}
|
||||
body, err := describeBody(ctx)
|
||||
if err != nil {
|
||||
return err
|
||||
@ -147,23 +150,23 @@ func doPublish(ctx *context.Context, client client.Client) error {
|
||||
})
|
||||
}
|
||||
|
||||
filters := artifact.Or(
|
||||
typeFilters := []artifact.Filter{
|
||||
artifact.ByType(artifact.UploadableArchive),
|
||||
artifact.ByType(artifact.UploadableBinary),
|
||||
artifact.ByType(artifact.UploadableSourceArchive),
|
||||
artifact.ByType(artifact.UploadableFile),
|
||||
artifact.ByType(artifact.Checksum),
|
||||
artifact.ByType(artifact.Signature),
|
||||
artifact.ByType(artifact.Certificate),
|
||||
artifact.ByType(artifact.LinuxPackage),
|
||||
artifact.ByType(artifact.SBOM),
|
||||
)
|
||||
filters := artifact.Or(typeFilters...)
|
||||
|
||||
if len(ctx.Config.Release.IDs) > 0 {
|
||||
filters = artifact.And(filters, artifact.ByIDs(ctx.Config.Release.IDs...))
|
||||
}
|
||||
|
||||
filters = artifact.Or(filters, artifact.ByType(artifact.UploadableFile))
|
||||
|
||||
g := semerrgroup.New(ctx.Parallelism)
|
||||
for _, artifact := range ctx.Artifacts.Filter(filters).List() {
|
||||
artifact := artifact
|
||||
|
Loading…
x
Reference in New Issue
Block a user