From 2cdd3e9fda55f6e519ddda2920ca629e4a1e5c4d Mon Sep 17 00:00:00 2001 From: Tommy Chow Date: Thu, 2 Jul 2026 19:52:09 -0400 Subject: [PATCH] build: pin exact flutter version in pubspec as single source of truth - add `flutter: 3.44.2` to environment so `flutter pub get` fails locally the moment the SDK drifts (was already drifting: local 3.44.2 vs the 3.44.1 pinned in CI) - point all 8 workflow pins at `flutter-version-file: pubspec.yaml` so CI reads the same field; bumping Flutter is now a one-line pubspec edit instead of editing 5 workflow files Co-Authored-By: Claude Opus 4.8 (1M context) --- .github/workflows/ci.yml | 4 ++-- .github/workflows/gh-release.yml | 2 +- .github/workflows/pr-check.yml | 2 +- .github/workflows/release-dryrun.yml | 4 ++-- .github/workflows/store-release.yml | 4 ++-- pubspec.lock | 2 +- pubspec.yaml | 3 +++ 7 files changed, 12 insertions(+), 9 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 3a14cc5a..d6c5c96b 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -19,7 +19,7 @@ jobs: java-version: 21 - uses: subosito/flutter-action@v2 with: - flutter-version: 3.44.1 + flutter-version-file: pubspec.yaml cache: true - run: flutter doctor -v - run: flutter pub get @@ -53,7 +53,7 @@ jobs: xcode-version: latest-stable - uses: subosito/flutter-action@v2 with: - flutter-version: 3.44.1 + flutter-version-file: pubspec.yaml cache: true - run: flutter pub get - run: flutter build ios --release --no-codesign diff --git a/.github/workflows/gh-release.yml b/.github/workflows/gh-release.yml index c668613e..a0d23fd7 100644 --- a/.github/workflows/gh-release.yml +++ b/.github/workflows/gh-release.yml @@ -32,7 +32,7 @@ jobs: - name: Set up Flutter uses: subosito/flutter-action@v2 with: - flutter-version: 3.44.1 + flutter-version-file: pubspec.yaml cache: true # Decode and create the upload-keystore.jks file, used for signing the app. diff --git a/.github/workflows/pr-check.yml b/.github/workflows/pr-check.yml index 8ea53ae2..1c3e9897 100644 --- a/.github/workflows/pr-check.yml +++ b/.github/workflows/pr-check.yml @@ -16,7 +16,7 @@ jobs: java-version: 21 - uses: subosito/flutter-action@v2 with: - flutter-version: 3.44.1 + flutter-version-file: pubspec.yaml cache: true - run: flutter doctor -v - run: flutter pub get diff --git a/.github/workflows/release-dryrun.yml b/.github/workflows/release-dryrun.yml index 2c97dd62..b3c31b44 100644 --- a/.github/workflows/release-dryrun.yml +++ b/.github/workflows/release-dryrun.yml @@ -53,7 +53,7 @@ jobs: - name: Set up Flutter uses: subosito/flutter-action@v2 with: - flutter-version: 3.44.1 + flutter-version-file: pubspec.yaml cache: true # Decode and create the upload-keystore.jks file, used for signing the app. @@ -105,7 +105,7 @@ jobs: - name: Set up Flutter uses: subosito/flutter-action@v2 with: - flutter-version: 3.44.1 + flutter-version-file: pubspec.yaml cache: true # Setup the iOS project with environment variables without signing (building and signing will happen in fastlane). diff --git a/.github/workflows/store-release.yml b/.github/workflows/store-release.yml index 353deb9b..db4fe7ef 100644 --- a/.github/workflows/store-release.yml +++ b/.github/workflows/store-release.yml @@ -49,7 +49,7 @@ jobs: - name: Set up Flutter uses: subosito/flutter-action@v2 with: - flutter-version: 3.44.1 + flutter-version-file: pubspec.yaml cache: true # Decode and create the upload-keystore.jks file, used for signing the app. @@ -101,7 +101,7 @@ jobs: - name: Set up Flutter uses: subosito/flutter-action@v2 with: - flutter-version: 3.44.1 + flutter-version-file: pubspec.yaml cache: true # Setup the iOS project with environment variables without signing (building and signing will happen in fastlane). diff --git a/pubspec.lock b/pubspec.lock index 4f4b25b0..bd05ccbf 100644 --- a/pubspec.lock +++ b/pubspec.lock @@ -1530,4 +1530,4 @@ packages: version: "3.1.3" sdks: dart: ">=3.12.0 <4.0.0" - flutter: ">=3.44.0" + flutter: "3.44.2" diff --git a/pubspec.yaml b/pubspec.yaml index 962a8bf4..e05eaf23 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -21,6 +21,9 @@ version: 5.1.0+69 environment: sdk: ^3.9.0 + # Exact Flutter pin, enforced by `flutter pub get` locally and read by CI via + # `flutter-version-file: pubspec.yaml`. Single source of truth: bump here. + flutter: 3.44.2 # Dependencies specify other packages that your package needs in order to work. # To automatically upgrade your package dependencies to the latest versions