mirror of
https://github.com/Syngnat/GoNavi.git
synced 2026-07-07 02:51:35 +08:00
🔧 chore(driver): 自动生成驱动代理 revision
- 新增脚本按 optional driver-agent 源码依赖生成 revision 指纹 - 构建脚本与 dev/release workflow 在打包前自动刷新 revision - 生成驱动 revision 映射并补充 optional driver 覆盖校验
This commit is contained in:
21
internal/db/driver_agent_revisions_gen.go
Normal file
21
internal/db/driver_agent_revisions_gen.go
Normal file
@@ -0,0 +1,21 @@
|
||||
// Code generated by tools/generate-driver-agent-revisions.sh; DO NOT EDIT.
|
||||
|
||||
package db
|
||||
|
||||
func init() {
|
||||
optionalDriverAgentRevisions = map[string]string{
|
||||
"mariadb": "src-d6c5c6717338834c",
|
||||
"diros": "src-ed4f0f64ed28d3fa",
|
||||
"sphinx": "src-f52324f0a812d7c8",
|
||||
"sqlserver": "src-ec165f18de9cd8b3",
|
||||
"sqlite": "src-9dea6c76bc931114",
|
||||
"duckdb": "src-14027ac1de3c50c7",
|
||||
"dameng": "src-1a08880ff5bbcf31",
|
||||
"kingbase": "src-28eed0e4d942b724",
|
||||
"highgo": "src-76146bf97f07f25c",
|
||||
"vastbase": "src-555b60c4863542b6",
|
||||
"mongodb": "src-2540a7350c4243aa",
|
||||
"tdengine": "src-ce3e4a9c46f6b92d",
|
||||
"clickhouse": "src-78e5ada4da56704d",
|
||||
}
|
||||
}
|
||||
@@ -36,6 +36,11 @@ var optionalGoDrivers = map[string]struct{}{
|
||||
"clickhouse": {},
|
||||
}
|
||||
|
||||
// optionalDriverAgentRevisions 记录 GoNavi 对各可选 driver-agent 包装逻辑的兼容版本。
|
||||
// 该 map 由 tools/generate-driver-agent-revisions.sh 按 driver-agent 源码依赖自动生成,
|
||||
// 避免人工判断需要 bump 哪个驱动 revision。
|
||||
var optionalDriverAgentRevisions = map[string]string{}
|
||||
|
||||
var (
|
||||
externalDriverDirMu sync.RWMutex
|
||||
externalDriverDir string
|
||||
@@ -105,6 +110,10 @@ func IsOptionalGoDriverBuildIncluded(driverType string) bool {
|
||||
return optionalGoDriverBuildIncluded(normalizeRuntimeDriverType(driverType))
|
||||
}
|
||||
|
||||
func OptionalDriverAgentRevision(driverType string) string {
|
||||
return strings.TrimSpace(optionalDriverAgentRevisions[normalizeRuntimeDriverType(driverType)])
|
||||
}
|
||||
|
||||
// IsBuiltinDriver 返回指定驱动类型是否为核心内置驱动(始终可用,无需安装)。
|
||||
func IsBuiltinDriver(driverType string) bool {
|
||||
_, ok := coreBuiltinDrivers[normalizeRuntimeDriverType(driverType)]
|
||||
|
||||
@@ -31,6 +31,17 @@ func TestBuiltinLikeDriversRemainAvailable(t *testing.T) {
|
||||
}
|
||||
}
|
||||
|
||||
func TestOptionalDriverAgentRevisionsGeneratedForOptionalDrivers(t *testing.T) {
|
||||
for driverType := range optionalGoDrivers {
|
||||
if revision := OptionalDriverAgentRevision(driverType); revision == "" {
|
||||
t.Fatalf("%s 缺少自动生成的 driver-agent revision", driverType)
|
||||
}
|
||||
}
|
||||
if OptionalDriverAgentRevision("doris") != OptionalDriverAgentRevision("diros") {
|
||||
t.Fatalf("doris/diros revision 应归一一致")
|
||||
}
|
||||
}
|
||||
|
||||
func TestManagedDriverRequiresInstallMarker(t *testing.T) {
|
||||
tmpDir := t.TempDir()
|
||||
SetExternalDriverDownloadDirectory(tmpDir)
|
||||
|
||||
Reference in New Issue
Block a user