From 25acfe656b587e0617c0178c2d24ac4c36695fe8 Mon Sep 17 00:00:00 2001 From: jwinterm Date: Sat, 19 Sep 2026 14:09:26 -0400 Subject: [PATCH] ci(windows): pin Flutter 3.32.0 like every other platform Windows took whatever Flutter the runner happened to have. On 2026-09-19 that was 3.38.5 with Dart 3.10.4, and Dart 3.10 removed the _macros package, so pub could not solve hive_generator against build_resolvers: macros >=0.1.3-main.0 depends on _macros from sdk which doesn't exist So, because hash_wallet depends on both build_resolvers ^2.4.4 and hive_generator ^2.0.1, version solving failed. The build died at exit 69 before compiling anything, on the same commit that Android and Linux built successfully minutes earlier. They differ only in that both run inside the cake_wallet debian13-flutter3.32.0 image, and iOS installs 3.32.0 explicitly. Windows was the only platform whose dependency resolution was decided by a machine somebody had updated. It now checks for 3.32.0 and installs it when absent, the same two steps iOS already uses. No app code changes; hash-bags-ios-1.0.3 stays at 0697f41c7. --- .github/workflows/build-windows.yml | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) diff --git a/.github/workflows/build-windows.yml b/.github/workflows/build-windows.yml index a52b5a317..5c3806f4a 100644 --- a/.github/workflows/build-windows.yml +++ b/.github/workflows/build-windows.yml @@ -162,6 +162,33 @@ jobs: } ' + # ---- Flutter, pinned ------------------------------------------------- + # Every other platform builds on 3.32.0: Linux and Android inside the + # cake_wallet debian13-flutter3.32.0 image, iOS by installing it + # explicitly. Windows was the one that took whatever the runner happened + # to have, and on 2026-09-19 that was 3.38.5 / Dart 3.10.4. Dart 3.10 + # removed the _macros package, so `flutter pub get` could not solve + # hive_generator against build_resolvers and the build died at exit 69 + # long before it compiled anything. A build machine's drifting toolchain + # must not decide which dependencies resolve. + - name: Check Flutter 3.32.0 + id: flutter_check + run: | + if command -v flutter >/dev/null && flutter --version 2>/dev/null | grep -q "3\.32\.0"; then + echo "installed=true" >> "$GITHUB_OUTPUT" + flutter --version + else + echo "installed=false" >> "$GITHUB_OUTPUT" + fi + + - name: Install Flutter 3.32.0 (if missing) + if: steps.flutter_check.outputs.installed != 'true' + uses: subosito/flutter-action@v2 + with: + flutter-version: '3.32.0' + channel: stable + cache: true + # ---- Toolchain sanity ------------------------------------------------ # Our self-hosted runner has Flutter / Rust / VS Build Tools / Inno # Setup pre-installed (see scripts/windows/setup-windows-runner.ps1).