Skip to content

Commit

Permalink
发布测试自动更新
Browse files Browse the repository at this point in the history
  • Loading branch information
duolabmeng6 committed Nov 9, 2023
1 parent 0070e51 commit 82fbb17
Show file tree
Hide file tree
Showing 3 changed files with 81 additions and 14 deletions.
2 changes: 1 addition & 1 deletion GoEasyDesigner/app.go
Original file line number Diff line number Diff line change
Expand Up @@ -163,7 +163,7 @@ func (a *App) E停止命令() string {

func (a *App) E检查更新() string {
if myfunc.E是否为macOS系统() {
mymodel.E检查更新()
mymodel.E检查更新_Mac()
}
if myfunc.E是否为window系统() {
mymodel.E检查更新_window()
Expand Down
26 changes: 16 additions & 10 deletions GoEasyDesigner/mymodel/自动更新模块.go
Original file line number Diff line number Diff line change
Expand Up @@ -98,9 +98,9 @@ type ReleaseInfo struct {
ReleaseTime string `json:"发布时间"`
}

func E获取Github仓库Releases版本和更新内容() *ReleaseInfo {
owner := "duolabmeng6" // GitHub 仓库的所有者
repo := "GoEasyDesigner" // GitHub 仓库的名称
func E获取Github仓库Releases版本和更新内容(owner, repo string) *ReleaseInfo {
//owner := "duolabmeng6" // GitHub 仓库的所有者
//repo := "GoEasyDesigner" // GitHub 仓库的名称
url := fmt.Sprintf("https://api.github.com/repos/%s/%s/releases", owner, repo)
resp, err := http.Get(url)
if err != nil {
Expand Down Expand Up @@ -473,10 +473,13 @@ func E更新自己Window应用(exe资源文件路径 string) (bool, string) {
return true, ""
}

func E检查更新() {
func E检查更新_Mac() {
应用名称 := "GoEasyDesigner"
owner := "duolabmeng6" // GitHub 仓库的所有者
repo := "GoEasyDesigner" // GitHub 仓库的名称

下载文件夹路径 := E取用户下载文件夹路径()
info := E获取Github仓库Releases版本和更新内容()
info := E获取Github仓库Releases版本和更新内容(owner, repo)
println(info.MacDownloadURL)
println(下载文件夹路径)
if info.Version == Version {
Expand Down Expand Up @@ -506,7 +509,7 @@ func E检查更新() {

progress.Text("正在下载...")

err = E下载带进度回调(info.MacDownloadURL, 下载文件夹路径+"/GoEasyDesigner_MacOS.zip", func(进度 float64) {
err = E下载带进度回调(info.MacDownloadURL, 下载文件夹路径+"/"+应用名称+"_MacOS.zip", func(进度 float64) {
fmt.Println("正在下载...", 进度)
progress.Text("正在下载..." + fmt.Sprintf("%.2f", 进度) + "%")
progress.Value(int(进度))
Expand All @@ -523,13 +526,16 @@ func E检查更新() {
return
}
fmt.Println("下载完成了")
flag, s := E更新自己MacOS应用(下载文件夹路径+"/GoEasyDesigner_MacOS.zip", "GoEasyDesigner.app")
flag, s := E更新自己MacOS应用(下载文件夹路径+"/"+应用名称+"_MacOS.zip", 应用名称+".app")
println(flag, s)
}

func E检查更新_window() {
应用名称 := "GoEasyDesigner"
owner := "duolabmeng6" // GitHub 仓库的所有者
repo := "GoEasyDesigner" // GitHub 仓库的名称
下载文件夹路径 := E取用户下载文件夹路径()
info := E获取Github仓库Releases版本和更新内容()
info := E获取Github仓库Releases版本和更新内容(owner, repo)
if info == nil {
zenity.Info("网络原因无法获取更新信息")
return
Expand Down Expand Up @@ -561,7 +567,7 @@ func E检查更新_window() {

progress.Text("正在下载...")

err = E下载带进度回调(info.WinDownloadURL, 下载文件夹路径+"/GoEasyDesigner.exe", func(进度 float64) {
err = E下载带进度回调(info.WinDownloadURL, 下载文件夹路径+"/"+应用名称+".exe", func(进度 float64) {
fmt.Println("正在下载...", 进度)
progress.Text("正在下载..." + fmt.Sprintf("%.2f", 进度) + "%")
progress.Value(int(进度))
Expand All @@ -578,6 +584,6 @@ func E检查更新_window() {
return
}
fmt.Println("下载完成了")
flag, s := E更新自己Window应用(下载文件夹路径 + "/GoEasyDesigner.exe")
flag, s := E更新自己Window应用(下载文件夹路径 + "/" + 应用名称 + ".exe")
println(flag, s)
}
67 changes: 64 additions & 3 deletions GoEasyDesigner/mymodel/自动更新模块_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -3,13 +3,16 @@ package mymodel
import (
"fmt"
"github.com/duolabmeng6/goefun/ecore"
"github.com/ncruces/zenity"
"os/user"
"path/filepath"
"testing"
)

func TestE获取Github仓库Releases版本和更新内容(t *testing.T) {
info := E获取Github仓库Releases版本和更新内容()
owner := "duolabmeng6" // GitHub 仓库的所有者
repo := "GoEasyDesigner" // GitHub 仓库的名称
info := E获取Github仓库Releases版本和更新内容(owner, repo)
ecore.E调试输出(info)

}
Expand Down Expand Up @@ -43,15 +46,16 @@ func Test解压缩(t *testing.T) {
E更新自己MacOS应用(压缩包的路径, "GoEasyDesigner.app")
}
func Test更新流程MacOS(t *testing.T) {

owner := "duolabmeng6" // GitHub 仓库的所有者
repo := "GoEasyDesigner" // GitHub 仓库的名称
usr, err := user.Current()
if err != nil {
panic(err)
}
下载文件夹路径 := filepath.Join(usr.HomeDir, "Downloads")

println(下载文件夹路径)
info := E获取Github仓库Releases版本和更新内容()
info := E获取Github仓库Releases版本和更新内容(owner, repo)

err = E下载带进度回调(info.MacDownloadURL, 下载文件夹路径+"/mactest.zip", func(进度 float64) {
// 进度回调函数
Expand Down Expand Up @@ -91,3 +95,60 @@ func Test更新流程Window(t *testing.T) {
println(flag, s)

}

func Test整个流程(t *testing.T) {
应用名称 := "GoEasyDesigner"
owner := "duolabmeng6" // GitHub 仓库的所有者
repo := "GoEasyDesigner" // GitHub 仓库的名称

下载文件夹路径 := E取用户下载文件夹路径()
info := E获取Github仓库Releases版本和更新内容(owner, repo)
println(info.MacDownloadURL)
println(下载文件夹路径)
if info.Version == Version {
err := zenity.Info("当前已经是最新版本")
if err != nil {
return
}
return
}

err := zenity.Question("软件有新版本可用,是否更新?\n当前版本:"+
Version+
"\n最新版本:"+info.Version,
zenity.Title("更新提示"),
zenity.Icon(zenity.QuestionIcon),
zenity.OKLabel("更新"),
zenity.CancelLabel("取消"))
ecore.E调试输出(err)
println("更新", err)
if err != nil {
return
}
progress, _ := zenity.Progress(
zenity.Title("软件更新"),
zenity.MaxValue(100), // 设置最大进度值为100
)

progress.Text("正在下载...")

err = E下载带进度回调(info.MacDownloadURL, 下载文件夹路径+"/"+应用名称+"_MacOS.zip", func(进度 float64) {
fmt.Println("正在下载...", 进度)
progress.Text("正在下载..." + fmt.Sprintf("%.2f", 进度) + "%")
progress.Value(int(进度))
})
if err != nil {
fmt.Println("下载出错:", err)
zenity.Info("下载错误,检查你的网络")
progress.Close()
return
}
progress.Text("下载完成 即将完成更新")
if progress.Close() != nil {
fmt.Println("点击了取消")
return
}
fmt.Println("下载完成了")
flag, s := E更新自己MacOS应用(下载文件夹路径+"/"+应用名称+"_MacOS.zip", 应用名称+".app")
println(flag, s)
}

0 comments on commit 82fbb17

Please sign in to comment.