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 (
|
import (
|
||||||
"encoding/json"
|
"encoding/json"
|
||||||
"github.com/pkg/errors"
|
|
||||||
"io"
|
"io"
|
||||||
"net/http"
|
"net/http"
|
||||||
"time"
|
"time"
|
||||||
|
|
||||||
|
"github.com/pkg/errors"
|
||||||
)
|
)
|
||||||
|
|
||||||
const (
|
const (
|
||||||
|
@ -98,12 +99,26 @@ func getLatestPrerelease() (data TRelease, err error) {
|
||||||
}
|
}
|
||||||
|
|
||||||
func GetRelease(channel string) (data TRelease, err error) {
|
func GetRelease(channel string) (data TRelease, err error) {
|
||||||
|
stableRelease, err := getLatestRelease()
|
||||||
|
if err != nil {
|
||||||
|
return TRelease{}, err
|
||||||
|
}
|
||||||
|
|
||||||
switch channel {
|
switch channel {
|
||||||
default:
|
default:
|
||||||
fallthrough
|
fallthrough
|
||||||
case "stable":
|
case "stable":
|
||||||
return getLatestRelease()
|
return stableRelease, nil
|
||||||
case "prerelease":
|
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