🐛 fix(driver-manager): 修复驱动安装交互与 DuckDB Windows 发布链路

- 修复单驱动安装期间右侧目录操作被错误禁用的问题
- 调整 DuckDB Windows 优先下载专属 zip 并兼容带 query 的签名链接
- 补齐本地构建与 CI 发布的 duckdb-driver.zip 产物及回归测试
This commit is contained in:
Syngnat
2026-06-05 07:15:16 +08:00
parent a718c41d5d
commit 2438899ff5
8 changed files with 514 additions and 29 deletions

View File

@@ -434,6 +434,28 @@ jobs:
./cmd/optional-driver-agent
fi
bash ./tools/compress-driver-artifact.sh "${OUTPUT_PATH}" "$TARGET_PLATFORM" "${{ matrix.os_name }}/${OUTPUT}"
if [ "$DRIVER" = "duckdb" ] && [ -n "$DUCKDB_LIB_DIR" ]; then
DUCKDB_ZIP_PATH="${OUTDIR}/duckdb-driver.zip" \
DUCKDB_AGENT_PATH="${OUTPUT_PATH}" \
DUCKDB_DLL_PATH="${OUTDIR}/duckdb.dll" \
python3 - <<'PY'
import os
import zipfile
zip_path = os.environ["DUCKDB_ZIP_PATH"]
entries = [
("Windows/duckdb-driver-agent-windows-amd64.exe", os.environ["DUCKDB_AGENT_PATH"]),
("Windows/duckdb.dll", os.environ["DUCKDB_DLL_PATH"]),
]
with zipfile.ZipFile(zip_path, "w", compression=zipfile.ZIP_DEFLATED) as zf:
for arcname, src in entries:
if not os.path.isfile(src):
raise FileNotFoundError(src)
zf.write(src, arcname)
PY
echo "📦 已生成 DuckDB Windows 专属驱动包: ${DUCKDB_ZIP_PATH}"
fi
done
bash ./tools/verify-driver-agent-revisions.sh \

View File

@@ -426,6 +426,28 @@ jobs:
./cmd/optional-driver-agent
fi
bash ./tools/compress-driver-artifact.sh "${OUTPUT_PATH}" "$TARGET_PLATFORM" "${{ matrix.os_name }}/${OUTPUT}"
if [ "$DRIVER" = "duckdb" ] && [ -n "$DUCKDB_LIB_DIR" ]; then
DUCKDB_ZIP_PATH="${OUTDIR}/duckdb-driver.zip" \
DUCKDB_AGENT_PATH="${OUTPUT_PATH}" \
DUCKDB_DLL_PATH="${OUTDIR}/duckdb.dll" \
python3 - <<'PY'
import os
import zipfile
zip_path = os.environ["DUCKDB_ZIP_PATH"]
entries = [
("Windows/duckdb-driver-agent-windows-amd64.exe", os.environ["DUCKDB_AGENT_PATH"]),
("Windows/duckdb.dll", os.environ["DUCKDB_DLL_PATH"]),
]
with zipfile.ZipFile(zip_path, "w", compression=zipfile.ZIP_DEFLATED) as zf:
for arcname, src in entries:
if not os.path.isfile(src):
raise FileNotFoundError(src)
zf.write(src, arcname)
PY
echo "📦 已生成 DuckDB Windows 专属驱动包: ${DUCKDB_ZIP_PATH}"
fi
done
bash ./tools/verify-driver-agent-revisions.sh \
@@ -707,6 +729,7 @@ jobs:
REQUIRED_FILES+=("drivers/Windows/${driver}-driver-agent-windows-arm64.exe")
else
REQUIRED_FILES+=("drivers/Windows/duckdb.dll")
REQUIRED_FILES+=("drivers/Windows/duckdb-driver.zip")
fi
for file in "${REQUIRED_FILES[@]}"; do