diff --git a/.github/actions/pana/action.yml b/.github/actions/pana/action.yml index 07b449548b..8cd789dfce 100644 --- a/.github/actions/pana/action.yml +++ b/.github/actions/pana/action.yml @@ -31,12 +31,7 @@ runs: yq eval '.dependencies.stream_chat = {"path": "../stream_chat"}' -i packages/stream_chat_persistence/pubspec.yaml - name: Install Flutter - uses: subosito/flutter-action@v2 - with: - cache: true - channel: stable - flutter-version: "3.x" - cache-key: flutter-:os:-:channel:-:version:-:arch:-:hash:-${{ hashFiles('**/pubspec.lock') }} + uses: ./.github/actions/setup-flutter - name: Install Pana working-directory: ${{ inputs.working_directory }} diff --git a/.github/actions/setup-flutter/action.yml b/.github/actions/setup-flutter/action.yml index eb4b5434c6..6d336d95af 100644 --- a/.github/actions/setup-flutter/action.yml +++ b/.github/actions/setup-flutter/action.yml @@ -1,12 +1,26 @@ name: 'Setup Flutter' description: 'Install Flutter with dependency caching' +inputs: + flutter-version: + description: 'Flutter version to install. Empty selects the newest on the channel.' + required: false + default: '3.x' + channel: + description: 'Flutter release channel' + required: false + default: 'stable' + cache-sdk: + description: 'Cache the Flutter SDK. Turn off for jobs that run too rarely to hit it.' + required: false + default: 'true' runs: using: "composite" steps: - uses: subosito/flutter-action@v2 with: - flutter-version: "3.x" - channel: stable - cache: true + flutter-version: ${{ inputs.flutter-version }} + channel: ${{ inputs.channel }} + cache: ${{ inputs.cache-sdk }} + pub-cache: 'true' cache-key: "flutter-:os:-:channel:-:version:-:arch:" pub-cache-key: "flutter-pub-:os:-${{ hashFiles('melos.yaml', '**/pubspec.yaml') }}" diff --git a/.github/workflows/beta_version_analyze.yml b/.github/workflows/beta_version_analyze.yml index bfc2d3b200..7ee21bbf37 100644 --- a/.github/workflows/beta_version_analyze.yml +++ b/.github/workflows/beta_version_analyze.yml @@ -21,11 +21,16 @@ jobs: fetch-depth: 0 - name: "Install Flutter" - uses: subosito/flutter-action@v2 + uses: ./.github/actions/setup-flutter with: channel: beta - cache: true - cache-key: flutter-:os:-:channel:-:version:-:arch:-:hash:-${{ hashFiles('**/pubspec.lock') }} + # Must stay empty. Inheriting the action's 3.x default would hold this + # job on 3.x betas, so it would stop catching the next major early — + # which is the only thing it exists to do. + flutter-version: '' + # Weekly, and a new beta invalidates the key, so an SDK entry would + # almost never be restored before it expires. + cache-sdk: 'false' - name: 📊 Analyze and test packages uses: ./.github/actions/package_analysis diff --git a/.github/workflows/legacy_version_analyze.yml b/.github/workflows/legacy_version_analyze.yml index c5cc4c4aef..b23151d911 100644 --- a/.github/workflows/legacy_version_analyze.yml +++ b/.github/workflows/legacy_version_analyze.yml @@ -65,11 +65,9 @@ jobs: fetch-depth: 0 - name: "Install Flutter" - uses: subosito/flutter-action@v2 + uses: ./.github/actions/setup-flutter with: flutter-version: ${{ env.flutter_version }} - channel: stable - cache-key: flutter-:os:-:channel:-:version:-:arch:-:hash:-${{ hashFiles('**/pubspec.lock') }} - name: 📊 Analyze and test packages uses: ./.github/actions/package_analysis diff --git a/.github/workflows/release_publish.yml b/.github/workflows/release_publish.yml index 7756fe6c01..773de6917f 100644 --- a/.github/workflows/release_publish.yml +++ b/.github/workflows/release_publish.yml @@ -29,7 +29,7 @@ jobs: uses: dart-lang/setup-dart@v1 - name: 🐦 Install Flutter - uses: subosito/flutter-action@v2 + uses: ./.github/actions/setup-flutter - name: 📦 Install Tools run: flutter pub global activate melos diff --git a/.github/workflows/update_goldens.yml b/.github/workflows/update_goldens.yml index 148397e2d5..67056b3faf 100644 --- a/.github/workflows/update_goldens.yml +++ b/.github/workflows/update_goldens.yml @@ -27,11 +27,7 @@ jobs: uses: actions/checkout@v7 - name: 🐦 Install Flutter - uses: subosito/flutter-action@v2 - with: - flutter-version: "3.x" - channel: stable - cache-key: flutter-:os:-:channel:-:version:-:arch:-:hash:-${{ hashFiles('**/pubspec.lock') }} + uses: ./.github/actions/setup-flutter - name: 📦 Install Tools run: flutter pub global activate melos @@ -76,11 +72,7 @@ jobs: uses: actions/checkout@v7 - name: 🐦 Install Flutter - uses: subosito/flutter-action@v2 - with: - flutter-version: "3.x" - channel: stable - cache-key: flutter-:os:-:channel:-:version:-:arch:-:hash:-${{ hashFiles('**/pubspec.lock') }} + uses: ./.github/actions/setup-flutter - name: 📦 Install Tools run: flutter pub global activate melos