mirror of
https://github.com/0xJacky/nginx-ui.git
synced 2025-05-11 18:35:51 +02:00
feat(ota): add dev channel
This commit is contained in:
parent
6a832937e3
commit
38f4b55fcf
4 changed files with 105 additions and 3 deletions
|
@ -14,6 +14,14 @@ const (
|
|||
GithubReleasesListAPI = "https://api.github.com/repos/0xJacky/nginx-ui/releases"
|
||||
)
|
||||
|
||||
type ReleaseType string
|
||||
|
||||
const (
|
||||
ReleaseTypeStable ReleaseType = "stable"
|
||||
ReleaseTypePrerelease ReleaseType = "prerelease"
|
||||
ReleaseTypeDev ReleaseType = "dev"
|
||||
)
|
||||
|
||||
type TReleaseAsset struct {
|
||||
Name string `json:"name"`
|
||||
BrowserDownloadUrl string `json:"browser_download_url"`
|
||||
|
@ -26,6 +34,7 @@ type TRelease struct {
|
|||
PublishedAt time.Time `json:"published_at"`
|
||||
Body string `json:"body"`
|
||||
Prerelease bool `json:"prerelease"`
|
||||
Type ReleaseType `json:"type"`
|
||||
Assets []TReleaseAsset `json:"assets"`
|
||||
}
|
||||
|
||||
|
@ -58,6 +67,7 @@ func getLatestRelease() (data TRelease, err error) {
|
|||
err = errors.Wrap(err, "service.getLatestRelease json.Unmarshal err")
|
||||
return
|
||||
}
|
||||
data.Type = ReleaseTypeStable
|
||||
return
|
||||
}
|
||||
|
||||
|
@ -92,6 +102,7 @@ func getLatestPrerelease() (data TRelease, err error) {
|
|||
if release.Prerelease && release.PublishedAt.After(latestDate) {
|
||||
data = release
|
||||
latestDate = release.PublishedAt
|
||||
data.Type = ReleaseTypePrerelease
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -104,12 +115,12 @@ func GetRelease(channel string) (data TRelease, err error) {
|
|||
return TRelease{}, err
|
||||
}
|
||||
|
||||
switch channel {
|
||||
switch ReleaseType(channel) {
|
||||
default:
|
||||
fallthrough
|
||||
case "stable":
|
||||
case ReleaseTypeStable:
|
||||
return stableRelease, nil
|
||||
case "prerelease":
|
||||
case ReleaseTypePrerelease:
|
||||
preRelease, err := getLatestPrerelease()
|
||||
if err != nil {
|
||||
return TRelease{}, err
|
||||
|
@ -120,5 +131,11 @@ func GetRelease(channel string) (data TRelease, err error) {
|
|||
return preRelease, nil
|
||||
}
|
||||
return stableRelease, nil
|
||||
case ReleaseTypeDev:
|
||||
devRelease, err := getDevBuild()
|
||||
if err != nil {
|
||||
return TRelease{}, err
|
||||
}
|
||||
return devRelease, nil
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue