🐛 fix(ci): 修复 driver revision 跨平台错配

- 改为在 dev/release 主程序构建前按当前平台全量生成 driver-agent revision 指纹
- 避免只重算部分驱动时混入其他平台旧 revision,导致最新 dev 应用误判全量 driver mismatch
- 为 windows/amd64 始终准备 DuckDB CGO toolchain,保证全量 revision 生成可执行
- 补充 revision 平台相关回归脚本,覆盖 darwin/arm64 与 windows/amd64 生成差异
This commit is contained in:
Syngnat
2026-06-05 11:59:30 +08:00
parent 805ab8b3d8
commit 01bee3d8e4
3 changed files with 74 additions and 20 deletions

View File

@@ -274,7 +274,7 @@ jobs:
- name: Setup MSYS2 Toolchain For DuckDB (Windows AMD64)
id: msys2_duckdb
if: ${{ matrix.build_optional_agents && matrix.platform == 'windows/amd64' && contains(format(',{0},', needs.driver_agents.outputs.drivers), ',duckdb,') }}
if: ${{ matrix.platform == 'windows/amd64' }}
continue-on-error: true
uses: msys2/setup-msys2@v2
with:
@@ -284,7 +284,7 @@ jobs:
mingw-w64-ucrt-x86_64-gcc
- name: Configure DuckDB CGO Toolchain (Windows AMD64)
if: ${{ matrix.build_optional_agents && matrix.platform == 'windows/amd64' && contains(format(',{0},', needs.driver_agents.outputs.drivers), ',duckdb,') }}
if: ${{ matrix.platform == 'windows/amd64' }}
shell: pwsh
run: |
function Find-MingwBin([string[]]$candidates) {
@@ -342,7 +342,7 @@ jobs:
Write-Host "✅ 已配置 DuckDB cgo 编译器: gcc=$gcc g++=$gxx"
- name: Verify DuckDB CGO Toolchain (Windows AMD64)
if: ${{ matrix.build_optional_agents && matrix.platform == 'windows/amd64' && contains(format(',{0},', needs.driver_agents.outputs.drivers), ',duckdb,') }}
if: ${{ matrix.platform == 'windows/amd64' }}
shell: pwsh
run: |
& "$env:CC" --version
@@ -360,16 +360,11 @@ jobs:
- name: Build
shell: bash
env:
CHANGED_DRIVER_AGENTS: ${{ needs.driver_agents.outputs.drivers }}
run: |
set -euo pipefail
DEV_VERSION="${{ steps.version.outputs.version }}"
if [ -n "$CHANGED_DRIVER_AGENTS" ]; then
./tools/generate-driver-agent-revisions.sh --platform "${{ matrix.platform }}" --drivers "$CHANGED_DRIVER_AGENTS"
else
echo "🧭 No driver-agent changes; keeping committed driver revisions"
fi
echo "🧭 为 ${{ matrix.platform }} 全量生成 driver-agent revision 指纹,避免跨平台沿用旧 revision"
./tools/generate-driver-agent-revisions.sh --platform "${{ matrix.platform }}"
if [ -n "${{ matrix.wails_tags }}" ]; then
wails build -s -skipbindings -platform ${{ matrix.platform }} -clean -o ${{ matrix.build_name }} -tags "${{ matrix.wails_tags }}" -ldflags "-s -w -X GoNavi-Wails/internal/app.AppVersion=${DEV_VERSION}"
else