feat: add version to release asset names (#901)

This commit is contained in:
suxb201 2024-12-12 16:55:55 +08:00 committed by GitHub
parent 770fe60731
commit 485fd11241
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
5 changed files with 64 additions and 13 deletions

View File

@ -5,3 +5,14 @@ template: |
## Changes
$CHANGES
version-resolver:
major:
labels:
- 'major'
minor:
labels:
- 'minor'
patch:
labels:
- 'patch'
default: patch

View File

@ -18,8 +18,6 @@ jobs:
with:
go-version-file: go.mod
- name: Build
run: bash build.sh dist
- name: "Draft release"
id: "release"
@ -27,12 +25,19 @@ jobs:
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: Build
run: |
VERSION=${{ steps.release.outputs.tag_name }}
COMMIT=${GITHUB_SHA::8}
export VERSION COMMIT
bash build.sh dist
- name: "Upload release linux-amd64"
uses: actions/upload-release-asset@v1
with:
upload_url: ${{ steps.release.outputs.upload_url }}
asset_path: ./bin/redis-shake-linux-amd64.tar.gz
asset_name: redis-shake-linux-amd64.tar.gz
asset_name: redis-shake-${{ steps.release.outputs.tag_name }}-linux-amd64.tar.gz
asset_content_type: application/gzip
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
@ -42,7 +47,7 @@ jobs:
with:
upload_url: ${{ steps.release.outputs.upload_url }}
asset_path: ./bin/redis-shake-linux-arm64.tar.gz
asset_name: redis-shake-linux-arm64.tar.gz
asset_name: redis-shake-${{ steps.release.outputs.tag_name }}-linux-arm64.tar.gz
asset_content_type: application/gzip
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
@ -52,7 +57,7 @@ jobs:
with:
upload_url: ${{ steps.release.outputs.upload_url }}
asset_path: ./bin/redis-shake-darwin-amd64.tar.gz
asset_name: redis-shake-darwin-amd64.tar.gz
asset_name: redis-shake-${{ steps.release.outputs.tag_name }}-darwin-amd64.tar.gz
asset_content_type: application/gzip
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
@ -62,7 +67,7 @@ jobs:
with:
upload_url: ${{ steps.release.outputs.upload_url }}
asset_path: ./bin/redis-shake-darwin-arm64.tar.gz
asset_name: redis-shake-darwin-arm64.tar.gz
asset_name: redis-shake-${{ steps.release.outputs.tag_name }}-darwin-arm64.tar.gz
asset_content_type: application/gzip
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
@ -72,7 +77,7 @@ jobs:
with:
upload_url: ${{ steps.release.outputs.upload_url }}
asset_path: ./bin/redis-shake-windows-amd64.tar.gz
asset_name: redis-shake-windows-amd64.tar.gz
asset_name: redis-shake-${{ steps.release.outputs.tag_name }}-windows-amd64.tar.gz
asset_content_type: application/gzip
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
@ -82,7 +87,7 @@ jobs:
with:
upload_url: ${{ steps.release.outputs.upload_url }}
asset_path: ./bin/redis-shake-windows-arm64.tar.gz
asset_name: redis-shake-windows-arm64.tar.gz
asset_name: redis-shake-${{ steps.release.outputs.tag_name }}-windows-arm64.tar.gz
asset_content_type: application/gzip
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}

View File

@ -9,12 +9,20 @@ mkdir -p "$BIN_DIR"
cp shake.toml "$BIN_DIR"
VERSION=${VERSION:-"dev"}
if git rev-parse --is-inside-work-tree > /dev/null 2>&1; then
COMMIT=${COMMIT:-$(git rev-parse --short HEAD)}
else
COMMIT=${COMMIT:-"unknown"}
fi
LDFLAGS=${LDFLAGS:-"-X main.Version=${VERSION} -X main.GitCommit=${COMMIT}"}
dist() {
echo "try build GOOS=$1 GOARCH=$2"
export GOOS=$g
export GOARCH=$a
export GOOS=$1
export GOARCH=$2
export CGO_ENABLED=0
go build -v -trimpath -o "$BIN_DIR/redis-shake" "./cmd/redis-shake"
go build -v -trimpath -ldflags "${LDFLAGS}" -o "$BIN_DIR/redis-shake" "./cmd/redis-shake"
unset GOOS
unset GOARCH
echo "build success GOOS=$1 GOARCH=$2"
@ -35,5 +43,5 @@ fi
# build the current platform
echo "try build for current platform"
go build -v -trimpath -o "$BIN_DIR/redis-shake" "./cmd/redis-shake"
go build -v -trimpath -ldflags "${LDFLAGS}" -o "$BIN_DIR/redis-shake" "./cmd/redis-shake"
echo "build success"

View File

@ -18,10 +18,32 @@ import (
"RedisShake/internal/utils"
"RedisShake/internal/writer"
"fmt"
"runtime"
"github.com/mcuadros/go-defaults"
)
var (
// These variables will be set during build time
Version = "unknown"
GitCommit = "unknown"
)
func getVersionString() string {
return fmt.Sprintf("%s %s/%s (Git SHA: %s)", Version, runtime.GOOS, runtime.GOARCH, GitCommit)
}
func main() {
// Add version flag check before config loading
if len(os.Args) == 2 && (os.Args[1] == "-v" || os.Args[1] == "--version" || os.Args[1] == "version") {
fmt.Printf("redis-shake version %s\n", getVersionString())
os.Exit(0)
}
// Add version info at startup
log.Infof("redis-shake version %s", getVersionString())
v := config.LoadConfig()
log.Init(config.Opt.Advanced.LogLevel, config.Opt.Advanced.LogFile, config.Opt.Advanced.Dir)

View File

@ -17,7 +17,12 @@ def test(src, dst):
shake = h.Shake(opts)
# wait sync done
p.ASSERT_TRUE_TIMEOUT(lambda: shake.is_consistent(), timeout=10)
try: # HTTPConnectionPool
p.ASSERT_TRUE_TIMEOUT(lambda: shake.is_consistent(), timeout=10)
except Exception as e:
with open(f"{shake.dir}/data/shake.log") as f:
p.log(f.read())
raise e
# add data again
inserter.add_data(src, cross_slots_cmd=cross_slots_cmd)