|
@@ -147,13 +147,18 @@ func SelectLatestRelease(rels []Release, current string, upgradeToPreReleases bo
|
|
|
l.Debugln("skipping pre-release", rel.Tag)
|
|
|
continue
|
|
|
}
|
|
|
+
|
|
|
+ expectedReleases := releaseNames(rel.Tag)
|
|
|
+ nextAsset:
|
|
|
for _, asset := range rel.Assets {
|
|
|
assetName := path.Base(asset.Name)
|
|
|
// Check for the architecture
|
|
|
- expectedRelease := releaseName(rel.Tag)
|
|
|
- if strings.HasPrefix(assetName, expectedRelease) {
|
|
|
- l.Debugln("selected", rel.Tag)
|
|
|
- selected = rel
|
|
|
+ for _, expRel := range expectedReleases {
|
|
|
+ if strings.HasPrefix(assetName, expRel) {
|
|
|
+ l.Debugln("selected", rel.Tag)
|
|
|
+ selected = rel
|
|
|
+ break nextAsset
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
}
|
|
@@ -167,14 +172,15 @@ func SelectLatestRelease(rels []Release, current string, upgradeToPreReleases bo
|
|
|
|
|
|
// Upgrade to the given release, saving the previous binary with a ".old" extension.
|
|
|
func upgradeTo(binary string, rel Release) error {
|
|
|
- expectedRelease := releaseName(rel.Tag)
|
|
|
- l.Debugf("expected release asset %q", expectedRelease)
|
|
|
+ expectedReleases := releaseNames(rel.Tag)
|
|
|
for _, asset := range rel.Assets {
|
|
|
assetName := path.Base(asset.Name)
|
|
|
l.Debugln("considering release", assetName)
|
|
|
|
|
|
- if strings.HasPrefix(assetName, expectedRelease) {
|
|
|
- return upgradeToURL(assetName, binary, asset.URL)
|
|
|
+ for _, expRel := range expectedReleases {
|
|
|
+ if strings.HasPrefix(assetName, expRel) {
|
|
|
+ return upgradeToURL(assetName, binary, asset.URL)
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
|