mirror of
https://github.com/Syngnat/GoNavi.git
synced 2026-07-10 23:11:40 +08:00
🐛 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:
@@ -4205,12 +4205,28 @@ func currentDriverReleaseTag() string {
|
|||||||
if currentVersion == "" || currentVersion == "0.0.0" {
|
if currentVersion == "" || currentVersion == "0.0.0" {
|
||||||
return ""
|
return ""
|
||||||
}
|
}
|
||||||
if strings.HasPrefix(strings.ToLower(currentVersion), "dev-") {
|
if isDevelopmentDriverReleaseVersion(currentVersion) {
|
||||||
return driverReleaseDevTag
|
return driverReleaseDevTag
|
||||||
}
|
}
|
||||||
return "v" + currentVersion
|
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 {
|
func driverReleaseDownloadURL(tag string, assetName string) string {
|
||||||
tagName := strings.TrimSpace(tag)
|
tagName := strings.TrimSpace(tag)
|
||||||
asset := strings.TrimSpace(assetName)
|
asset := strings.TrimSpace(assetName)
|
||||||
|
|||||||
@@ -142,6 +142,7 @@ func optionalDriverAgentRevisionTestDrivers(t *testing.T) []string {
|
|||||||
"mongodb",
|
"mongodb",
|
||||||
"tdengine",
|
"tdengine",
|
||||||
"clickhouse",
|
"clickhouse",
|
||||||
|
"elasticsearch",
|
||||||
}
|
}
|
||||||
for _, driverType := range drivers {
|
for _, driverType := range drivers {
|
||||||
if db.OptionalDriverAgentRevision(driverType) == "" {
|
if db.OptionalDriverAgentRevision(driverType) == "" {
|
||||||
|
|||||||
@@ -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) {
|
func TestResolveOptionalDriverBundleDownloadURLsUsesDriverReleaseRepo(t *testing.T) {
|
||||||
originalVersion := AppVersion
|
originalVersion := AppVersion
|
||||||
AppVersion = "0.7.4"
|
AppVersion = "0.7.4"
|
||||||
|
|||||||
@@ -4,23 +4,23 @@ package db
|
|||||||
|
|
||||||
func init() {
|
func init() {
|
||||||
optionalDriverAgentRevisions = map[string]string{
|
optionalDriverAgentRevisions = map[string]string{
|
||||||
"mariadb": "src-0a4176f4b5743323",
|
"mariadb": "src-0a4176f4b5743323",
|
||||||
"oceanbase": "src-e996325fd6d52648",
|
"oceanbase": "src-e996325fd6d52648",
|
||||||
"diros": "src-cc11b882e28fa5d4",
|
"diros": "src-cc11b882e28fa5d4",
|
||||||
"starrocks": "src-83a6d81c91c7f5c8",
|
"starrocks": "src-83a6d81c91c7f5c8",
|
||||||
"sphinx": "src-a70c2cd4d223dac2",
|
"sphinx": "src-a70c2cd4d223dac2",
|
||||||
"sqlserver": "src-84553484c72e7253",
|
"sqlserver": "src-84553484c72e7253",
|
||||||
"sqlite": "src-762863d48f653b89",
|
"sqlite": "src-762863d48f653b89",
|
||||||
"duckdb": "src-3e551d777ae96d8d",
|
"duckdb": "src-3e551d777ae96d8d",
|
||||||
"dameng": "src-596bebeaa016fc74",
|
"dameng": "src-596bebeaa016fc74",
|
||||||
"kingbase": "src-2e5a1337b0405c57",
|
"kingbase": "src-2e5a1337b0405c57",
|
||||||
"highgo": "src-5a29a1d3685eb6b4",
|
"highgo": "src-5a29a1d3685eb6b4",
|
||||||
"vastbase": "src-e3cfef65512feb23",
|
"vastbase": "src-e3cfef65512feb23",
|
||||||
"opengauss": "src-58227ba3bc1ec894",
|
"opengauss": "src-58227ba3bc1ec894",
|
||||||
"iris": "src-1b072c57af08bec4",
|
"iris": "src-1b072c57af08bec4",
|
||||||
"mongodb": "src-57fdd8bfebdcd46e",
|
"mongodb": "src-57fdd8bfebdcd46e",
|
||||||
"tdengine": "src-939715f94df1ec9c",
|
"tdengine": "src-939715f94df1ec9c",
|
||||||
"clickhouse": "src-482d62ed565b3e69",
|
"clickhouse": "src-482d62ed565b3e69",
|
||||||
"elasticsearch": "src-local",
|
"elasticsearch": "src-62e8aa80212bd2e4",
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -33,9 +33,13 @@ func TestBuiltinLikeDriversRemainAvailable(t *testing.T) {
|
|||||||
|
|
||||||
func TestOptionalDriverAgentRevisionsGeneratedForOptionalDrivers(t *testing.T) {
|
func TestOptionalDriverAgentRevisionsGeneratedForOptionalDrivers(t *testing.T) {
|
||||||
for driverType := range optionalGoDrivers {
|
for driverType := range optionalGoDrivers {
|
||||||
if revision := OptionalDriverAgentRevision(driverType); revision == "" {
|
revision := OptionalDriverAgentRevision(driverType)
|
||||||
|
if revision == "" {
|
||||||
t.Fatalf("%s 缺少自动生成的 driver-agent revision", driverType)
|
t.Fatalf("%s 缺少自动生成的 driver-agent revision", driverType)
|
||||||
}
|
}
|
||||||
|
if revision == "src-local" {
|
||||||
|
t.Fatalf("%s driver-agent revision 仍是本地占位值", driverType)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
if OptionalDriverAgentRevision("doris") != OptionalDriverAgentRevision("diros") {
|
if OptionalDriverAgentRevision("doris") != OptionalDriverAgentRevision("diros") {
|
||||||
t.Fatalf("doris/diros revision 应归一一致")
|
t.Fatalf("doris/diros revision 应归一一致")
|
||||||
|
|||||||
@@ -27,9 +27,11 @@ DRIVERS = [
|
|||||||
"highgo",
|
"highgo",
|
||||||
"vastbase",
|
"vastbase",
|
||||||
"opengauss",
|
"opengauss",
|
||||||
|
"iris",
|
||||||
"mongodb",
|
"mongodb",
|
||||||
"tdengine",
|
"tdengine",
|
||||||
"clickhouse",
|
"clickhouse",
|
||||||
|
"elasticsearch",
|
||||||
]
|
]
|
||||||
|
|
||||||
BUNDLE_NAME = "GoNavi-DriverAgents.zip"
|
BUNDLE_NAME = "GoNavi-DriverAgents.zip"
|
||||||
|
|||||||
@@ -7,7 +7,7 @@ cd "$SCRIPT_DIR"
|
|||||||
SCRIPT_DIR_WINDOWS="$(pwd -W 2>/dev/null || true)"
|
SCRIPT_DIR_WINDOWS="$(pwd -W 2>/dev/null || true)"
|
||||||
SCRIPT_DIR_WINDOWS="${SCRIPT_DIR_WINDOWS//\\//}"
|
SCRIPT_DIR_WINDOWS="${SCRIPT_DIR_WINDOWS//\\//}"
|
||||||
|
|
||||||
DEFAULT_DRIVERS=(mariadb oceanbase doris starrocks sphinx sqlserver sqlite duckdb dameng kingbase highgo vastbase opengauss iris mongodb tdengine clickhouse)
|
DEFAULT_DRIVERS=(mariadb oceanbase doris starrocks sphinx sqlserver sqlite duckdb dameng kingbase highgo vastbase opengauss iris mongodb tdengine clickhouse elasticsearch)
|
||||||
TARGET_PLATFORMS=(darwin/amd64 darwin/arm64 windows/amd64 windows/arm64 linux/amd64)
|
TARGET_PLATFORMS=(darwin/amd64 darwin/arm64 windows/amd64 windows/arm64 linux/amd64)
|
||||||
|
|
||||||
usage() {
|
usage() {
|
||||||
@@ -50,6 +50,7 @@ normalize_driver() {
|
|||||||
case "$value" in
|
case "$value" in
|
||||||
doris|diros) echo "doris" ;;
|
doris|diros) echo "doris" ;;
|
||||||
open_gauss|open-gauss) echo "opengauss" ;;
|
open_gauss|open-gauss) echo "opengauss" ;;
|
||||||
|
elastic|elasticsearch) echo "elasticsearch" ;;
|
||||||
mariadb|oceanbase|starrocks|sphinx|sqlserver|sqlite|duckdb|dameng|kingbase|highgo|vastbase|opengauss|iris|mongodb|tdengine|clickhouse)
|
mariadb|oceanbase|starrocks|sphinx|sqlserver|sqlite|duckdb|dameng|kingbase|highgo|vastbase|opengauss|iris|mongodb|tdengine|clickhouse)
|
||||||
echo "$value"
|
echo "$value"
|
||||||
;;
|
;;
|
||||||
@@ -158,6 +159,7 @@ driver_tokens_from_text() {
|
|||||||
case "$text" in *mongodb*) emit_driver_token mongodb ;; esac
|
case "$text" in *mongodb*) emit_driver_token mongodb ;; esac
|
||||||
case "$text" in *tdengine*) emit_driver_token tdengine ;; esac
|
case "$text" in *tdengine*) emit_driver_token tdengine ;; esac
|
||||||
case "$text" in *clickhouse*) emit_driver_token clickhouse ;; esac
|
case "$text" in *clickhouse*) emit_driver_token clickhouse ;; esac
|
||||||
|
case "$text" in *elasticsearch*) emit_driver_token elasticsearch ;; esac
|
||||||
|
|
||||||
case "$text" in
|
case "$text" in
|
||||||
*github.com/go-sql-driver/mysql*)
|
*github.com/go-sql-driver/mysql*)
|
||||||
@@ -184,6 +186,7 @@ driver_tokens_from_text() {
|
|||||||
case "$text" in *go.mongodb.org/mongo-driver*|*go.mongodb.org/mongo-driver/v2*) emit_driver_token mongodb ;; esac
|
case "$text" in *go.mongodb.org/mongo-driver*|*go.mongodb.org/mongo-driver/v2*) emit_driver_token mongodb ;; esac
|
||||||
case "$text" in *github.com/taosdata/driver-go/v3*) emit_driver_token tdengine ;; esac
|
case "$text" in *github.com/taosdata/driver-go/v3*) emit_driver_token tdengine ;; esac
|
||||||
case "$text" in *github.com/clickhouse/clickhouse-go/v2*|*github.com/clickhouse/ch-go*) emit_driver_token clickhouse ;; esac
|
case "$text" in *github.com/clickhouse/clickhouse-go/v2*|*github.com/clickhouse/ch-go*) emit_driver_token clickhouse ;; esac
|
||||||
|
case "$text" in *github.com/elastic/go-elasticsearch/v8*) emit_driver_token elasticsearch ;; esac
|
||||||
}
|
}
|
||||||
|
|
||||||
emit_driver_token() {
|
emit_driver_token() {
|
||||||
|
|||||||
@@ -27,6 +27,7 @@ normalize_driver() {
|
|||||||
doris|diros) echo "diros" ;;
|
doris|diros) echo "diros" ;;
|
||||||
oceanbase) echo "oceanbase" ;;
|
oceanbase) echo "oceanbase" ;;
|
||||||
opengauss|open_gauss|open-gauss) echo "opengauss" ;;
|
opengauss|open_gauss|open-gauss) echo "opengauss" ;;
|
||||||
|
elastic|elasticsearch) echo "elasticsearch" ;;
|
||||||
mariadb|diros|starrocks|sphinx|sqlserver|sqlite|duckdb|dameng|kingbase|highgo|vastbase|iris|mongodb|tdengine|clickhouse)
|
mariadb|diros|starrocks|sphinx|sqlserver|sqlite|duckdb|dameng|kingbase|highgo|vastbase|iris|mongodb|tdengine|clickhouse)
|
||||||
echo "$value"
|
echo "$value"
|
||||||
;;
|
;;
|
||||||
@@ -130,7 +131,9 @@ iris:internal/db/iris_impl.go|\
|
|||||||
mongodb:internal/db/mongodb_impl.go|\
|
mongodb:internal/db/mongodb_impl.go|\
|
||||||
mongodb:internal/db/mongodb_impl_v1.go|\
|
mongodb:internal/db/mongodb_impl_v1.go|\
|
||||||
tdengine:internal/db/tdengine_impl.go|\
|
tdengine:internal/db/tdengine_impl.go|\
|
||||||
clickhouse:internal/db/clickhouse_impl.go)
|
clickhouse:internal/db/clickhouse_impl.go|\
|
||||||
|
elasticsearch:internal/db/elasticsearch_helpers.go|\
|
||||||
|
elasticsearch:internal/db/elasticsearch_impl.go)
|
||||||
return 0
|
return 0
|
||||||
;;
|
;;
|
||||||
esac
|
esac
|
||||||
|
|||||||
Reference in New Issue
Block a user