Skip to content

Commit

Permalink
fix(generate-registry): sort releases by version
Browse files Browse the repository at this point in the history
  • Loading branch information
suzuki-shunsuke committed Feb 24, 2023
1 parent 9b9174a commit d6eca5d
Show file tree
Hide file tree
Showing 2 changed files with 31 additions and 8 deletions.
7 changes: 3 additions & 4 deletions pkg/controller/generate-registry/generate.go
Original file line number Diff line number Diff line change
Expand Up @@ -143,18 +143,17 @@ func (ctrl *Controller) getPackageInfo(ctx context.Context, logE *logrus.Entry,
logE.WithField("version", release.GetTagName()).Debug("got the release")
assets := ctrl.listReleaseAssets(ctx, logE, pkgInfo, release.GetID())
logE.WithField("num_of_assets", len(assets)).Debug("got assets")
ctrl.patchRelease(logE, pkgInfo, pkgName, release, assets)
ctrl.patchRelease(logE, pkgInfo, pkgName, release.GetTagName(), assets)
}
return pkgInfo, []string{version}
}

func (ctrl *Controller) patchRelease(logE *logrus.Entry, pkgInfo *registry.PackageInfo, pkgName string, release *github.RepositoryRelease, assets []*github.ReleaseAsset) { //nolint:funlen,cyclop
func (ctrl *Controller) patchRelease(logE *logrus.Entry, pkgInfo *registry.PackageInfo, pkgName string, tagName string, assets []*github.ReleaseAsset) { //nolint:funlen,cyclop
if len(assets) == 0 {
return
}
assetInfos := make([]*asset.AssetInfo, 0, len(assets))
pkgNameContainChecksum := strings.Contains(strings.ToLower(pkgName), "checksum")
tagName := release.GetTagName()
assetNames := map[string]struct{}{}
checksumNames := map[string]struct{}{}
for _, aset := range assets {
Expand All @@ -166,7 +165,7 @@ func (ctrl *Controller) patchRelease(logE *logrus.Entry, pkgInfo *registry.Packa
continue
}
}
if asset.Exclude(pkgName, assetName, release.GetTagName()) {
if asset.Exclude(pkgName, assetName, tagName) {
logE.WithField("asset_name", assetName).Debug("exclude an asset")
continue
}
Expand Down
32 changes: 28 additions & 4 deletions pkg/controller/generate-registry/version_overrides.go
Original file line number Diff line number Diff line change
Expand Up @@ -4,10 +4,12 @@ import (
"context"
"fmt"
"reflect"
"sort"
"strings"

"github.com/aquaproj/aqua/pkg/config/registry"
"github.com/aquaproj/aqua/pkg/github"
"github.com/hashicorp/go-version"
"github.com/sirupsen/logrus"
"github.com/suzuki-shunsuke/logrus-error/logerr"
)
Expand All @@ -31,24 +33,46 @@ func getBool(p *bool) bool {
return *p
}

type Release struct {
ID int64
Tag string
Version *version.Version
}

func (ctrl *Controller) getPackageInfoWithVersionOverrides(ctx context.Context, logE *logrus.Entry, pkgName string, pkgInfo *registry.PackageInfo) (*registry.PackageInfo, []string) {
releases := ctrl.listReleases(ctx, logE, pkgInfo)
ghReleases := ctrl.listReleases(ctx, logE, pkgInfo)
releases := make([]*Release, len(ghReleases))
for i, release := range ghReleases {
tag := release.GetTagName()
v, err := version.NewVersion(tag)
if err != nil {
logE.WithField("tag_name", tag).WithError(err).Warn("parse a tag as semver")
}
releases[i] = &Release{
ID: release.GetID(),
Tag: tag,
Version: v,
}
}
sort.Slice(releases, func(i, j int) bool {
return releases[i].Version.GreaterThanOrEqual(releases[j].Version)
})
pkgs := make([]*Package, 0, len(releases))
for _, release := range releases {
pkgInfo := &registry.PackageInfo{
Type: "github_release",
RepoOwner: pkgInfo.RepoOwner,
RepoName: pkgInfo.RepoName,
}
assets := ctrl.listReleaseAssets(ctx, logE, pkgInfo, release.GetID())
assets := ctrl.listReleaseAssets(ctx, logE, pkgInfo, release.ID)
logE.WithField("num_of_assets", len(assets)).Debug("got assets")
if len(assets) == 0 {
continue
}
ctrl.patchRelease(logE, pkgInfo, pkgName, release, assets)
ctrl.patchRelease(logE, pkgInfo, pkgName, release.Tag, assets)
pkgs = append(pkgs, &Package{
Info: pkgInfo,
Version: release.GetTagName(),
Version: release.Tag,
})
}
p, versions := mergePackages(pkgs)
Expand Down

0 comments on commit d6eca5d

Please sign in to comment.