feat: add support for release channels in version upgrade and node agent updates

- Introduced ReleaseChannel type to manage stable and preview releases.
- Updated DashboardTopbar to handle version upgrades based on selected release channel.
- Enhanced node detail page to allow manual checks for agent updates on stable and preview channels.
- Modified API endpoints to support fetching and upgrading based on release channels.
- Updated UI components to reflect changes in version checking and upgrade processes.
- Added tests for new functionality related to preview releases and agent updates.
This commit is contained in:
ryan
2026-03-12 11:25:13 +08:00
parent 93e43fb3b0
commit f50eb9adee
25 changed files with 1448 additions and 239 deletions
+6 -2
View File
@@ -77,9 +77,11 @@ func TestLatestReleaseProxy(t *testing.T) {
if loginRecorder.Code != http.StatusOK {
t.Fatalf("unexpected login status code: %d", loginRecorder.Code)
}
loginResult := loginRecorder.Result()
defer loginResult.Body.Close()
req := httptest.NewRequest(http.MethodGet, "/api/update/latest-release", nil)
for _, cookieValue := range loginRecorder.Result().Cookies() {
for _, cookieValue := range loginResult.Cookies() {
req.AddCookie(cookieValue)
}
@@ -133,8 +135,10 @@ func loginRootAndBuildEngine(t *testing.T) (*gin.Engine, []*http.Cookie) {
if loginRecorder.Code != http.StatusOK {
t.Fatalf("unexpected login status code: %d", loginRecorder.Code)
}
loginResult := loginRecorder.Result()
defer loginResult.Body.Close()
return engine, loginRecorder.Result().Cookies()
return engine, loginResult.Cookies()
}
func fakeManualServerBinary(version string) (string, []byte) {