🐛 fix(driver-agent): 修复 ES 驱动代理 revision 同步

- 补齐 Elasticsearch 在 revision 生成、变更检测和发布补齐脚本中的注册

- 生成 Elasticsearch 真实 driver-agent revision,避免 src-local 占位通过

- 本地测试版本改用 dev-latest driver-agent,避免退到旧 latest 包

- 增加 revision 测试覆盖,禁止可选驱动使用本地占位 revision
This commit is contained in:
Syngnat
2026-06-02 15:30:02 +08:00
parent e4a8c53079
commit 05d1bc22c6
8 changed files with 76 additions and 21 deletions

View File

@@ -4205,12 +4205,28 @@ func currentDriverReleaseTag() string {
if currentVersion == "" || currentVersion == "0.0.0" {
return ""
}
if strings.HasPrefix(strings.ToLower(currentVersion), "dev-") {
if isDevelopmentDriverReleaseVersion(currentVersion) {
return driverReleaseDevTag
}
return "v" + currentVersion
}
func isDevelopmentDriverReleaseVersion(version string) bool {
normalized := strings.ToLower(strings.TrimSpace(normalizeVersion(version)))
if normalized == "" || normalized == "0.0.0" {
return false
}
if strings.HasPrefix(normalized, "dev-") {
return true
}
for _, marker := range []string{"-dev", "-test", "-local", "-snapshot"} {
if strings.Contains(normalized, marker) {
return true
}
}
return false
}
func driverReleaseDownloadURL(tag string, assetName string) string {
tagName := strings.TrimSpace(tag)
asset := strings.TrimSpace(assetName)

View File

@@ -142,6 +142,7 @@ func optionalDriverAgentRevisionTestDrivers(t *testing.T) []string {
"mongodb",
"tdengine",
"clickhouse",
"elasticsearch",
}
for _, driverType := range drivers {
if db.OptionalDriverAgentRevision(driverType) == "" {

View File

@@ -54,6 +54,32 @@ func TestCurrentDriverReleaseTagUsesDevLatestForDevBuild(t *testing.T) {
}
}
func TestCurrentDriverReleaseTagUsesDevLatestForLocalTestBuild(t *testing.T) {
originalVersion := AppVersion
t.Cleanup(func() {
AppVersion = originalVersion
})
for _, version := range []string{"0.0.1-test", "0.7.9-dev", "0.7.9-local", "0.7.9-SNAPSHOT"} {
AppVersion = version
if got := currentDriverReleaseTag(); got != driverReleaseDevTag {
t.Fatalf("expected %s to use dev driver release tag %q, got %q", version, driverReleaseDevTag, got)
}
}
}
func TestCurrentDriverReleaseTagUsesVersionedReleaseForStableBuild(t *testing.T) {
originalVersion := AppVersion
AppVersion = "0.7.9"
t.Cleanup(func() {
AppVersion = originalVersion
})
if got := currentDriverReleaseTag(); got != "v0.7.9" {
t.Fatalf("expected stable driver release tag v0.7.9, got %q", got)
}
}
func TestResolveOptionalDriverBundleDownloadURLsUsesDriverReleaseRepo(t *testing.T) {
originalVersion := AppVersion
AppVersion = "0.7.4"

View File

@@ -4,23 +4,23 @@ package db
func init() {
optionalDriverAgentRevisions = map[string]string{
"mariadb": "src-0a4176f4b5743323",
"oceanbase": "src-e996325fd6d52648",
"diros": "src-cc11b882e28fa5d4",
"starrocks": "src-83a6d81c91c7f5c8",
"sphinx": "src-a70c2cd4d223dac2",
"sqlserver": "src-84553484c72e7253",
"sqlite": "src-762863d48f653b89",
"duckdb": "src-3e551d777ae96d8d",
"dameng": "src-596bebeaa016fc74",
"kingbase": "src-2e5a1337b0405c57",
"highgo": "src-5a29a1d3685eb6b4",
"vastbase": "src-e3cfef65512feb23",
"opengauss": "src-58227ba3bc1ec894",
"iris": "src-1b072c57af08bec4",
"mongodb": "src-57fdd8bfebdcd46e",
"tdengine": "src-939715f94df1ec9c",
"mariadb": "src-0a4176f4b5743323",
"oceanbase": "src-e996325fd6d52648",
"diros": "src-cc11b882e28fa5d4",
"starrocks": "src-83a6d81c91c7f5c8",
"sphinx": "src-a70c2cd4d223dac2",
"sqlserver": "src-84553484c72e7253",
"sqlite": "src-762863d48f653b89",
"duckdb": "src-3e551d777ae96d8d",
"dameng": "src-596bebeaa016fc74",
"kingbase": "src-2e5a1337b0405c57",
"highgo": "src-5a29a1d3685eb6b4",
"vastbase": "src-e3cfef65512feb23",
"opengauss": "src-58227ba3bc1ec894",
"iris": "src-1b072c57af08bec4",
"mongodb": "src-57fdd8bfebdcd46e",
"tdengine": "src-939715f94df1ec9c",
"clickhouse": "src-482d62ed565b3e69",
"elasticsearch": "src-local",
"elasticsearch": "src-62e8aa80212bd2e4",
}
}

View File

@@ -33,9 +33,13 @@ func TestBuiltinLikeDriversRemainAvailable(t *testing.T) {
func TestOptionalDriverAgentRevisionsGeneratedForOptionalDrivers(t *testing.T) {
for driverType := range optionalGoDrivers {
if revision := OptionalDriverAgentRevision(driverType); revision == "" {
revision := OptionalDriverAgentRevision(driverType)
if revision == "" {
t.Fatalf("%s 缺少自动生成的 driver-agent revision", driverType)
}
if revision == "src-local" {
t.Fatalf("%s driver-agent revision 仍是本地占位值", driverType)
}
}
if OptionalDriverAgentRevision("doris") != OptionalDriverAgentRevision("diros") {
t.Fatalf("doris/diros revision 应归一一致")