Skip to content

Commit a40893f

Browse files
authored
Merge pull request #1340 from Shuimo03/build-upgrade-s3
build:Modify GitHub releases URL to aws s3
2 parents e06ea23 + e55a5dd commit a40893f

File tree

1 file changed

+21
-21
lines changed

1 file changed

+21
-21
lines changed

internal/pkg/upgrade/upgrade.go

+21-21
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,8 @@
11
package upgrade
22

33
import (
4+
"io"
5+
"net/http"
46
"os"
57
"path/filepath"
68
"runtime"
@@ -9,18 +11,17 @@ import (
911
"github.com/Masterminds/semver"
1012

1113
"github.com/devstream-io/devstream/internal/pkg/version"
14+
"github.com/devstream-io/devstream/pkg/util/downloader"
1215
"github.com/devstream-io/devstream/pkg/util/interact"
1316
"github.com/devstream-io/devstream/pkg/util/log"
14-
"github.com/devstream-io/devstream/pkg/util/scm/git"
15-
"github.com/devstream-io/devstream/pkg/util/scm/github"
1617
)
1718

1819
const (
1920
assetName = "dtm-" + runtime.GOOS + "-" + runtime.GOARCH
2021
dtmTmpFileName = "dtm-tmp"
2122
dtmBakFileName = "dtm-bak"
22-
dtmOrg = "devstream-io"
23-
dtmRepo = "devstream"
23+
dtmDownloadUrl = "https://download.devstream.io/"
24+
latestVersion = "https://download.devstream.io/latest_version"
2425
)
2526

2627
// since dtm file name can be changeable by user,so it should be a variable to get current dtm file name
@@ -50,33 +51,26 @@ func Upgrade(continueDirectly bool) error {
5051
log.Debugf("Dtm upgrade: work path is : %v", workDir)
5152

5253
// 1. Get the latest release version
53-
ghOptions := &git.RepoInfo{
54-
Org: dtmOrg,
55-
Repo: dtmRepo,
56-
NeedAuth: false,
57-
WorkPath: workDir,
58-
}
59-
60-
ghClient, err := github.NewClient(ghOptions)
54+
request, err := http.Get(latestVersion)
6155
if err != nil {
6256
return err
6357
}
6458

65-
ltstReleaseTagName, err := ghClient.GetLatestReleaseTagName()
59+
body, err := io.ReadAll(request.Body)
60+
latestReleaseTagName := string(body[0 : len(body)-1])
6661
if err != nil {
6762
return err
6863
}
69-
log.Debugf("Dtm upgrade: got latest release version: %v", ltstReleaseTagName)
64+
log.Debugf("Dtm upgrade: got latest release version: %v", latestReleaseTagName)
7065

7166
// 2. Check whether Upgrade is needed
72-
// Use Semantic Version to judge. "https://semver.org/"
73-
shouldUpgrade, err := checkUpgrade(version.Version, ltstReleaseTagName)
67+
// To Use Semantic Version to judge. "https://semver.org/"
68+
shouldUpgrade, err := checkUpgrade(version.Version, latestReleaseTagName)
7469
if err != nil {
7570
return err
7671
}
77-
7872
if shouldUpgrade {
79-
log.Infof("Dtm upgrade: new dtm version: %v is available.", ltstReleaseTagName)
73+
log.Infof("Dtm upgrade: new dtm version: %v is available.", latestReleaseTagName)
8074
if !continueDirectly {
8175
continued := interact.AskUserIfContinue("Would you like to Upgrade? [y/n]")
8276
if !continued {
@@ -86,10 +80,16 @@ func Upgrade(continueDirectly bool) error {
8680

8781
// 3. Download the latest release version of dtm
8882
log.Info("Dtm upgrade: downloading the latest release version of dtm, please wait for a while.")
89-
if err = ghClient.DownloadAsset(ltstReleaseTagName, assetName, dtmTmpFileName); err != nil {
90-
log.Debugf("Failed to download dtm: %v-%v.", ltstReleaseTagName, assetName)
91-
return err
83+
var downloadURL strings.Builder
84+
downloadURL.WriteString(dtmDownloadUrl)
85+
downloadURL.WriteString(latestReleaseTagName + "/")
86+
downloadURL.WriteString(assetName)
87+
downloadSize, downloadError := downloader.New().WithProgressBar().Download(downloadURL.String(), dtmTmpFileName, workDir)
88+
if downloadError != nil {
89+
log.Debugf("Failed to download dtm: %v-%v.", latestReleaseTagName, assetName)
90+
return downloadError
9291
}
92+
log.Debugf("Downloaded <%d> bytes.", downloadSize)
9393

9494
// 4. Replace old dtm with the latest one
9595
if err = applyUpgrade(workDir); err != nil {

0 commit comments

Comments
 (0)