脚本上传二进制
go 代码添加变量
放到 util/version.go
package util
var (
GitBranch string
GitCommit string
BuildTime string
)
上传脚本
#!/bin/bash
mod_name=""
branch=$(git rev-parse --abbrev-ref HEAD)
commit=$(git rev-parse HEAD)
time=$(date +"%Y-%m-%d %H:%m:%S")
ver=${branch}
GO_LDFLAGS="-X /util.GitBranch=${branch} -X '/util.BuildTime=${time}' -X /util.GitCommit=${commit}"
echo "Build"
mkdir -p /tmp/linux /tmp/macos_amd64 /tmp/macos_arm64
GOOS=linux GOARCH=amd64 go build -ldflags "${GO_LDFLAGS}" -o /tmp/linux/ebscli ./
#GOOS=darwin GOARCH=amd64 go build -ldflags "${GO_LDFLAGS}" -o /tmp/macos_amd64/ebscli ./
#GOOS=darwin GOARCH=arm64 go build -ldflags "${GO_LDFLAGS}" -o /tmp/macos_arm64/ebscli ./
echo "Upload binary to OSS"
echo "Upload finished"
安装脚本
#!/bin/bash
# 设置下载链接的基础部分
BASE_URL="http://xxx/$1"
USE_SUDO="0"
# 获取操作系统和架构
OS=$(uname -s)
ARCH=$(uname -m)
if [ "X$1" == "X" ]; then
echo "You must set version like "
exit 1
fi
echo "Get version:$1, os:$OS, arch:$ARCH"
# 根据操作系统和架构选择下载链接
if [ "$OS" = "Linux" ]; then
DOWNLOAD_URL="${BASE_URL}/linux/ebscli"
elif [ "$OS" = "Darwin" ]; then
if [ "$ARCH" = "x86_64" ]; then
DOWNLOAD_URL="${BASE_URL}/macos_amd64/ebscli"
elif [ "$ARCH" = "arm64" ]; then
USE_SUDO="1"
DOWNLOAD_URL="${BASE_URL}/macos_arm64/ebscli"
else
echo "Unsupported architecture: $ARCH"
exit 1
fi
else
echo "Unsupported operating system: $OS"
exit 1
fi
# 下载软件
echo "Downloading software from $DOWNLOAD_URL"
rm -rf /tmp/ebscli
wget -O /tmp/ebscli $DOWNLOAD_URL
if [ $USE_SUDO = "1" ]; then
sudo cp -f /tmp/ebscli /usr/local/bin/
sudo chmod +x /usr/local/bin/ebscli
else
cp -f /tmp/ebscli /usr/local/bin/
chmod +x /usr/local/bin/ebscli
fi
Read other posts