mirror of
				https://github.com/openimsdk/open-im-server.git
				synced 2025-10-26 21:22:16 +08:00 
			
		
		
		
	feat: add versionchecker deploy
Signed-off-by: Xinwei Xiong(cubxxw-openim) <3293172751nss@gmail.com>
This commit is contained in:
		
							parent
							
								
									76484e09ac
								
							
						
					
					
						commit
						0ff8402c83
					
				
							
								
								
									
										3
									
								
								go.work
									
									
									
									
									
								
							
							
						
						
									
										3
									
								
								go.work
									
									
									
									
									
								
							| @ -1,4 +1,4 @@ | |||||||
| go 1.20 | go 1.21.0 | ||||||
| 
 | 
 | ||||||
| use ( | use ( | ||||||
| 	. | 	. | ||||||
| @ -7,5 +7,6 @@ use ( | |||||||
| 	./tools/imctl | 	./tools/imctl | ||||||
| 	./tools/infra | 	./tools/infra | ||||||
| 	./tools/ncpu | 	./tools/ncpu | ||||||
|  | 	./tools/versionchecker | ||||||
| 	./tools/yamlfmt | 	./tools/yamlfmt | ||||||
| ) | ) | ||||||
|  | |||||||
							
								
								
									
										3
									
								
								tools/versionchecker/go.mod
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										3
									
								
								tools/versionchecker/go.mod
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,3 @@ | |||||||
|  | module github.com/OpenIMSDK/Open-IM-Server/tools/versionchecker | ||||||
|  | 
 | ||||||
|  | go 1.21.0 | ||||||
							
								
								
									
										101
									
								
								tools/versionchecker/versionchecker.go
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										101
									
								
								tools/versionchecker/versionchecker.go
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,101 @@ | |||||||
|  | package main | ||||||
|  | 
 | ||||||
|  | import ( | ||||||
|  | 	"bytes" | ||||||
|  | 	"fmt" | ||||||
|  | 	"os/exec" | ||||||
|  | 	"runtime" | ||||||
|  | 	"time" | ||||||
|  | ) | ||||||
|  | 
 | ||||||
|  | func executeCommand(cmdName string, args ...string) (string, error) { | ||||||
|  | 	cmd := exec.Command(cmdName, args...) | ||||||
|  | 	var out bytes.Buffer | ||||||
|  | 	var stderr bytes.Buffer | ||||||
|  | 	cmd.Stdout = &out | ||||||
|  | 	cmd.Stderr = &stderr | ||||||
|  | 
 | ||||||
|  | 	err := cmd.Run() | ||||||
|  | 	if err != nil { | ||||||
|  | 		return "", fmt.Errorf("Error executing %s: %v", cmdName, err) | ||||||
|  | 	} | ||||||
|  | 	return out.String(), nil | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | func printTime() string { | ||||||
|  | 	currentTime := time.Now() | ||||||
|  | 
 | ||||||
|  | 	// 使用 Format 函数以优雅的方式格式化日期和时间 | ||||||
|  | 	// 2006-01-02 15:04:05 是 Go 中的标准时间格式 | ||||||
|  | 	formattedTime := currentTime.Format("2006-01-02 15:04:05") | ||||||
|  | 
 | ||||||
|  | 	return fmt.Sprintf("Current Date & Time:", formattedTime) | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | func getGoVersion() string { | ||||||
|  | 	version := runtime.Version() | ||||||
|  | 	goos := runtime.GOOS | ||||||
|  | 	goarch := runtime.GOARCH | ||||||
|  | 	return fmt.Sprintf("Go Version: %s\nOS: %s\nArchitecture: %s", version, goos, goarch) | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | func getDockerVersion() string { | ||||||
|  | 	version, err := executeCommand("docker", "--version") | ||||||
|  | 	if err != nil { | ||||||
|  | 		return "Docker is not installed. Please install it to get the version." | ||||||
|  | 	} | ||||||
|  | 	return version | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | func getDockerComposeVersion() string { | ||||||
|  | 	version, err := executeCommand("docker-compose", "--version") | ||||||
|  | 	if err != nil { | ||||||
|  | 		return "Docker Compose is not installed. Please install it to get the version." | ||||||
|  | 	} | ||||||
|  | 	return version | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | func getKubernetesVersion() string { | ||||||
|  | 	version, err := executeCommand("kubectl", "version", "--client", "--short") | ||||||
|  | 	if err != nil { | ||||||
|  | 		return "Kubernetes is not installed. Please install it to get the version." | ||||||
|  | 	} | ||||||
|  | 	return version | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | func getGitVersion() string { | ||||||
|  | 	version, err := executeCommand("git", "branch", "--show-current") | ||||||
|  | 	if err != nil { | ||||||
|  | 		return "Git is not installed. Please install it to get the version." | ||||||
|  | 	} | ||||||
|  | 	return version | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | // NOTE: You'll need to provide appropriate commands for OpenIM versions. | ||||||
|  | func getOpenIMServerVersion() string { | ||||||
|  | 	// Placeholder | ||||||
|  | 	return "OpenIM Server: v3.2" | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | func getOpenIMClientVersion() string { | ||||||
|  | 	// Placeholder | ||||||
|  | 	return "OpenIM Client: v3.2" | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | func main() { | ||||||
|  | 	fmt.Println(printTime()) | ||||||
|  | 	fmt.Println("# Diagnostic Tool Result\n") | ||||||
|  | 	fmt.Println("## Go Version") | ||||||
|  | 	fmt.Println(getGoVersion()) | ||||||
|  | 	fmt.Println("## Branch Type") | ||||||
|  | 	fmt.Println(getGitVersion()) | ||||||
|  | 	fmt.Println("## Docker Version") | ||||||
|  | 	fmt.Println(getDockerVersion()) | ||||||
|  | 	fmt.Println("## Docker Compose Version") | ||||||
|  | 	fmt.Println(getDockerComposeVersion()) | ||||||
|  | 	fmt.Println("## Kubernetes Version") | ||||||
|  | 	fmt.Println(getKubernetesVersion()) | ||||||
|  | 	fmt.Println("## OpenIM Versions") | ||||||
|  | 	fmt.Println(getOpenIMServerVersion()) | ||||||
|  | 	fmt.Println(getOpenIMClientVersion()) | ||||||
|  | } | ||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user