mirror of
https://github.com/0xJacky/nginx-ui.git
synced 2025-05-11 02:15:48 +02:00
feat(upgrader): Improve release channel selection logic #872
Modify GetRelease to compare stable and prerelease versions, returning the most recent release based on publish date
This commit is contained in:
parent
a6e97f128e
commit
da1ed85cef
1 changed files with 18 additions and 3 deletions
|
@ -2,10 +2,11 @@ package upgrader
|
|||
|
||||
import (
|
||||
"encoding/json"
|
||||
"github.com/pkg/errors"
|
||||
"io"
|
||||
"net/http"
|
||||
"time"
|
||||
|
||||
"github.com/pkg/errors"
|
||||
)
|
||||
|
||||
const (
|
||||
|
@ -98,12 +99,26 @@ func getLatestPrerelease() (data TRelease, err error) {
|
|||
}
|
||||
|
||||
func GetRelease(channel string) (data TRelease, err error) {
|
||||
stableRelease, err := getLatestRelease()
|
||||
if err != nil {
|
||||
return TRelease{}, err
|
||||
}
|
||||
|
||||
switch channel {
|
||||
default:
|
||||
fallthrough
|
||||
case "stable":
|
||||
return getLatestRelease()
|
||||
return stableRelease, nil
|
||||
case "prerelease":
|
||||
return getLatestPrerelease()
|
||||
preRelease, err := getLatestPrerelease()
|
||||
if err != nil {
|
||||
return TRelease{}, err
|
||||
}
|
||||
// if preRelease is newer than stableRelease, return preRelease
|
||||
// otherwise return stableRelease
|
||||
if preRelease.PublishedAt.After(stableRelease.PublishedAt) {
|
||||
return preRelease, nil
|
||||
}
|
||||
return stableRelease, nil
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue