1+ name : Release
2+
3+ on :
4+ push :
5+ tags :
6+ - ' v*'
7+
8+ jobs :
9+ test :
10+ name : Test Before Release
11+ runs-on : ubuntu-latest
12+
13+ steps :
14+ - name : Set up Go
15+ uses : actions/setup-go@v4
16+ with :
17+ go-version : ' 1.21'
18+
19+ - name : Check out code
20+ uses : actions/checkout@v4
21+
22+ - name : Cache Go modules
23+ uses : actions/cache@v3
24+ with :
25+ path : ~/go/pkg/mod
26+ key : ${{ runner.os }}-go-1.21-${{ hashFiles('**/go.sum') }}
27+
28+ - name : Download dependencies
29+ run : go mod download
30+
31+ - name : Run all tests
32+ run : go test -v -race -timeout 30s ./...
33+
34+ - name : Run CASE expression tests specifically
35+ run : |
36+ echo "Testing CASE expression functionality..."
37+ go test -v -run TestCaseExpression -timeout 20s
38+
39+ release :
40+ name : Create Release
41+ runs-on : ubuntu-latest
42+ needs : test
43+
44+ steps :
45+ - name : Check out code
46+ uses : actions/checkout@v4
47+ with :
48+ fetch-depth : 0
49+
50+ - name : Set up Go
51+ uses : actions/setup-go@v4
52+ with :
53+ go-version : ' 1.21'
54+
55+ - name : Cache Go modules
56+ uses : actions/cache@v3
57+ with :
58+ path : ~/go/pkg/mod
59+ key : ${{ runner.os }}-go-1.21-${{ hashFiles('**/go.sum') }}
60+
61+ - name : Download dependencies
62+ run : go mod download
63+
64+ - name : Build binaries
65+ run : |
66+ # Build for multiple platforms
67+ GOOS=linux GOARCH=amd64 go build -o streamsql-linux-amd64 ./...
68+ GOOS=windows GOARCH=amd64 go build -o streamsql-windows-amd64.exe ./...
69+ GOOS=darwin GOARCH=amd64 go build -o streamsql-darwin-amd64 ./...
70+ GOOS=darwin GOARCH=arm64 go build -o streamsql-darwin-arm64 ./...
71+
72+ - name : Generate changelog
73+ id : changelog
74+ run : |
75+ echo "CHANGELOG<<EOF" >> $GITHUB_OUTPUT
76+ echo "## 🚀 StreamSQL $(echo ${{ github.ref }} | sed 's/refs\/tags\///')" >> $GITHUB_OUTPUT
77+ echo "" >> $GITHUB_OUTPUT
78+ echo "### ✨ 新增功能" >> $GITHUB_OUTPUT
79+ echo "- 完善的CASE表达式支持" >> $GITHUB_OUTPUT
80+ echo "- 多条件逻辑表达式 (AND, OR)" >> $GITHUB_OUTPUT
81+ echo "- 数学函数集成" >> $GITHUB_OUTPUT
82+ echo "- 字段提取和引用功能" >> $GITHUB_OUTPUT
83+ echo "" >> $GITHUB_OUTPUT
84+ echo "### 🔧 改进" >> $GITHUB_OUTPUT
85+ echo "- 负数解析优化" >> $GITHUB_OUTPUT
86+ echo "- 字符串和数值混合比较" >> $GITHUB_OUTPUT
87+ echo "- 表达式解析性能提升" >> $GITHUB_OUTPUT
88+ echo "" >> $GITHUB_OUTPUT
89+ echo "### 📋 测试覆盖" >> $GITHUB_OUTPUT
90+ echo "- ✅ 基础CASE表达式解析" >> $GITHUB_OUTPUT
91+ echo "- ✅ 复杂条件组合" >> $GITHUB_OUTPUT
92+ echo "- ✅ 函数调用支持" >> $GITHUB_OUTPUT
93+ echo "- ✅ 字段提取功能" >> $GITHUB_OUTPUT
94+ echo "- ⚠️ 聚合函数中的使用 (部分支持)" >> $GITHUB_OUTPUT
95+ echo "" >> $GITHUB_OUTPUT
96+ echo "---" >> $GITHUB_OUTPUT
97+ echo "📖 **完整文档**: [README.md](README.md) | [中文文档](README_ZH.md)" >> $GITHUB_OUTPUT
98+ echo "EOF" >> $GITHUB_OUTPUT
99+
100+ - name : Create Release
101+ uses : softprops/action-gh-release@v1
102+ with :
103+ body : ${{ steps.changelog.outputs.CHANGELOG }}
104+ files : |
105+ streamsql-linux-amd64
106+ streamsql-windows-amd64.exe
107+ streamsql-darwin-amd64
108+ streamsql-darwin-arm64
109+ draft : false
110+ prerelease : false
111+ env :
112+ GITHUB_TOKEN : ${{ secrets.GITHUB_TOKEN }}
0 commit comments