name: Release on: push: tags: - 'v*' env: GOPROXY: "https://mirrors.aliyun.com/goproxy/,direct" GITEA_URL: "https://hub.gaomia.site" jobs: build: runs-on: ubuntu steps: - name: Checkout code run: | apt-get update && apt-get install -y git curl go - name: Download dependencies run: go mod download - name: Build for all platforms run: | mkdir -p dist platforms="linux/amd64 linux/arm64 darwin/amd64 darwin/arm64 windows/amd64" for p in $platforms; do os=$(echo "$p" | cut -d/ -f1) arch=$(echo "$p" | cut -d/ -f2) ext="" if [ "$os" = "windows" ]; then ext=".exe" fi GOOS=$os GOARCH=$arch go build -o "dist/hxclaw-${os}-${arch}${ext}" ./cmd/hxclaw done - name: Generate checksums run: | cd dist sha256sum hxclaw-* > checksums.txt cat checksums.txt - name: Create release run: | TAG_NAME="${GITEA_REF#refs/tags/}" echo "Creating release: $TAG_NAME" curl -s -X POST "$GITEA_URL/api/v1/repos/titor/hxclaw/releases" \ -H "Authorization: token $GITEA_TOKEN" \ -H "Content-Type: application/json" \ -d "{\"tag_name\":\"$TAG_NAME\",\"name\":\"$TAG_NAME\",\"body\":\"Release $TAG_NAME\"}" - name: Upload assets run: | for f in dist/hxclaw-* dist/checksums.txt; do if [ -f "$f" ]; then curl -s -X POST "$GITEA_URL/api/v1/repos/titor/hxclaw/releases/latest/assets" \ -H "Authorization: token $GITEA_TOKEN" \ -F "attachment=@$f" fi done echo "Release completed!"