From 7a04286eb7453d4429b1d1f3604489c1872afa16 Mon Sep 17 00:00:00 2001 From: Eric Windmill Date: Tue, 14 Apr 2026 16:49:05 -0700 Subject: [PATCH] CI fixes (#2825) Configure CI to skip samples that only fail in beta --- .github/workflows/beta.yml | 69 ----------------- .github/workflows/main.yml | 2 +- cupertino_gallery/lib/widgets/sheet_page.dart | 35 +++++---- .../Package.swift | 28 +++++++ .../FlutterGeneratedPluginSwiftPackage.swift | 3 + .../Flutter/ephemeral/flutter_lldb_helper.py | 32 ++++++++ .../ios/Flutter/ephemeral/flutter_lldbinit | 5 ++ .../.plugin_symlinks/url_launcher_linux | 1 + .../ephemeral/Flutter-Generated.xcconfig | 11 +++ .../Package.swift | 28 +++++++ .../FlutterGeneratedPluginSwiftPackage.swift | 3 + .../ephemeral/flutter_export_environment.sh | 12 +++ .../.plugin_symlinks/url_launcher_windows | 1 + pubspec.yaml | 5 ++ tool/ci_script.dart | 43 ++++++++++- tool/clean_all.dart | 76 ++++++++++++++++++ tool/flutter_ci_script_beta.sh | 62 --------------- tool/flutter_ci_script_master.sh | 65 ---------------- tool/flutter_ci_script_shared.sh | 33 -------- tool/flutter_ci_script_stable.sh | 59 -------------- tool/flutter_clean_packages.sh | 77 ------------------- tool/flutter_pub_upgrade.sh | 16 ---- 22 files changed, 267 insertions(+), 399 deletions(-) delete mode 100644 .github/workflows/beta.yml create mode 100644 gemini_tasks/ios/Flutter/ephemeral/Packages/FlutterGeneratedPluginSwiftPackage/Package.swift create mode 100644 gemini_tasks/ios/Flutter/ephemeral/Packages/FlutterGeneratedPluginSwiftPackage/Sources/FlutterGeneratedPluginSwiftPackage/FlutterGeneratedPluginSwiftPackage.swift create mode 100644 gemini_tasks/ios/Flutter/ephemeral/flutter_lldb_helper.py create mode 100644 gemini_tasks/ios/Flutter/ephemeral/flutter_lldbinit create mode 120000 gemini_tasks/linux/flutter/ephemeral/.plugin_symlinks/url_launcher_linux create mode 100644 gemini_tasks/macos/Flutter/ephemeral/Flutter-Generated.xcconfig create mode 100644 gemini_tasks/macos/Flutter/ephemeral/Packages/FlutterGeneratedPluginSwiftPackage/Package.swift create mode 100644 gemini_tasks/macos/Flutter/ephemeral/Packages/FlutterGeneratedPluginSwiftPackage/Sources/FlutterGeneratedPluginSwiftPackage/FlutterGeneratedPluginSwiftPackage.swift create mode 100755 gemini_tasks/macos/Flutter/ephemeral/flutter_export_environment.sh create mode 120000 gemini_tasks/windows/flutter/ephemeral/.plugin_symlinks/url_launcher_windows create mode 100644 tool/clean_all.dart delete mode 100755 tool/flutter_ci_script_beta.sh delete mode 100755 tool/flutter_ci_script_master.sh delete mode 100644 tool/flutter_ci_script_shared.sh delete mode 100755 tool/flutter_ci_script_stable.sh delete mode 100644 tool/flutter_clean_packages.sh delete mode 100755 tool/flutter_pub_upgrade.sh diff --git a/.github/workflows/beta.yml b/.github/workflows/beta.yml deleted file mode 100644 index 2d441fed3..000000000 --- a/.github/workflows/beta.yml +++ /dev/null @@ -1,69 +0,0 @@ -name: Beta Branch CI - -# Declare default permissions as read only. -permissions: read-all - -on: - push: - branches: [beta] - pull_request: - branches: [beta] - workflow_dispatch: - -defaults: - run: - shell: bash - -jobs: - # Test all samples on the beta channel. Since the beta channel will soon be - # promoted to stable, this branch is only concerned with the beta. - Beta-CI: - name: Test flutter beta channel - runs-on: ${{ matrix.os }} - if: github.repository == 'flutter/samples' - strategy: - fail-fast: false - matrix: - os: [ubuntu-latest, macos-latest, windows-latest] - steps: - - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd - - uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 - with: - distribution: 'zulu' - java-version: '17' - - uses: subosito/flutter-action@e938fdf56512cc96ef2f93601a5a40bde3801046 - with: - channel: beta - - run: flutter pub get && dart tool/ci_script.dart - - # Verify the Android add-to-app samples build and pass tests with the beta - # channel. - android-build: - runs-on: ubuntu-latest - if: github.repository == 'flutter/samples' - steps: - - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd - - uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 - with: - distribution: 'zulu' - java-version: '17' - - uses: subosito/flutter-action@e938fdf56512cc96ef2f93601a5a40bde3801046 - with: - channel: beta - - run: ./tool/android_ci_script.sh - - # Verify the iOS add-to-app samples build and pass tests with the beta - # channel. - # ios-build: - # runs-on: macos-latest - # if: github.repository == 'flutter/samples' - # steps: - # - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd - # - uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 - # with: - # distribution: 'zulu' - # java-version: '17' - # - uses: subosito/flutter-action@e938fdf56512cc96ef2f93601a5a40bde3801046 - # with: - # channel: beta - # - run: ./tool/ios_ci_script.sh diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 1b84ef177..689aa71fa 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -24,7 +24,7 @@ jobs: strategy: fail-fast: false matrix: - flutter_version: [stable, beta] + flutter_version: [stable] os: [ubuntu-latest, macos-latest] steps: - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd diff --git a/cupertino_gallery/lib/widgets/sheet_page.dart b/cupertino_gallery/lib/widgets/sheet_page.dart index 1020135d6..9d27c0bd2 100644 --- a/cupertino_gallery/lib/widgets/sheet_page.dart +++ b/cupertino_gallery/lib/widgets/sheet_page.dart @@ -13,22 +13,25 @@ class SheetPage extends StatelessWidget { onPressed: () { Navigator.of(context).push( CupertinoSheetRoute( - builder: (BuildContext context) { - return CupertinoPageScaffold( - navigationBar: CupertinoNavigationBar( - middle: const Text('Sheet'), - trailing: GestureDetector( - child: const Icon(CupertinoIcons.xmark), - onTap: () { - Navigator.of(context).pop(); - }, - ), - ), - child: const Center( - child: Text('This is a sheet'), - ), - ); - }, + scrollableBuilder: + (BuildContext context, ScrollController controller) { + Widget widgetBuilder(BuildContext context) { + return CupertinoPageScaffold( + navigationBar: CupertinoNavigationBar( + middle: const Text('Sheet'), + trailing: GestureDetector( + child: const Icon(CupertinoIcons.xmark), + onTap: () { + Navigator.of(context).pop(); + }, + ), + ), + child: const Center(child: Text('This is a sheet')), + ); + } + + return widgetBuilder(context); + }, ), ); }, diff --git a/gemini_tasks/ios/Flutter/ephemeral/Packages/FlutterGeneratedPluginSwiftPackage/Package.swift b/gemini_tasks/ios/Flutter/ephemeral/Packages/FlutterGeneratedPluginSwiftPackage/Package.swift new file mode 100644 index 000000000..36cb990e0 --- /dev/null +++ b/gemini_tasks/ios/Flutter/ephemeral/Packages/FlutterGeneratedPluginSwiftPackage/Package.swift @@ -0,0 +1,28 @@ +// swift-tools-version: 5.9 +// The swift-tools-version declares the minimum version of Swift required to build this package. +// +// Generated file. Do not edit. +// + +import PackageDescription + +let package = Package( + name: "FlutterGeneratedPluginSwiftPackage", + platforms: [ + .iOS("13.0") + ], + products: [ + .library(name: "FlutterGeneratedPluginSwiftPackage", type: .static, targets: ["FlutterGeneratedPluginSwiftPackage"]) + ], + dependencies: [ + .package(name: "url_launcher_ios", path: "../.packages/url_launcher_ios") + ], + targets: [ + .target( + name: "FlutterGeneratedPluginSwiftPackage", + dependencies: [ + .product(name: "url-launcher-ios", package: "url_launcher_ios") + ] + ) + ] +) diff --git a/gemini_tasks/ios/Flutter/ephemeral/Packages/FlutterGeneratedPluginSwiftPackage/Sources/FlutterGeneratedPluginSwiftPackage/FlutterGeneratedPluginSwiftPackage.swift b/gemini_tasks/ios/Flutter/ephemeral/Packages/FlutterGeneratedPluginSwiftPackage/Sources/FlutterGeneratedPluginSwiftPackage/FlutterGeneratedPluginSwiftPackage.swift new file mode 100644 index 000000000..62e7b11aa --- /dev/null +++ b/gemini_tasks/ios/Flutter/ephemeral/Packages/FlutterGeneratedPluginSwiftPackage/Sources/FlutterGeneratedPluginSwiftPackage/FlutterGeneratedPluginSwiftPackage.swift @@ -0,0 +1,3 @@ +// +// Generated file. Do not edit. +// diff --git a/gemini_tasks/ios/Flutter/ephemeral/flutter_lldb_helper.py b/gemini_tasks/ios/Flutter/ephemeral/flutter_lldb_helper.py new file mode 100644 index 000000000..a88caf99d --- /dev/null +++ b/gemini_tasks/ios/Flutter/ephemeral/flutter_lldb_helper.py @@ -0,0 +1,32 @@ +# +# Generated file, do not edit. +# + +import lldb + +def handle_new_rx_page(frame: lldb.SBFrame, bp_loc, extra_args, intern_dict): + """Intercept NOTIFY_DEBUGGER_ABOUT_RX_PAGES and touch the pages.""" + base = frame.register["x0"].GetValueAsAddress() + page_len = frame.register["x1"].GetValueAsUnsigned() + + # Note: NOTIFY_DEBUGGER_ABOUT_RX_PAGES will check contents of the + # first page to see if handled it correctly. This makes diagnosing + # misconfiguration (e.g. missing breakpoint) easier. + data = bytearray(page_len) + data[0:8] = b'IHELPED!' + + error = lldb.SBError() + frame.GetThread().GetProcess().WriteMemory(base, data, error) + if not error.Success(): + print(f'Failed to write into {base}[+{page_len}]', error) + return + +def __lldb_init_module(debugger: lldb.SBDebugger, _): + target = debugger.GetDummyTarget() + # Caveat: must use BreakpointCreateByRegEx here and not + # BreakpointCreateByName. For some reasons callback function does not + # get carried over from dummy target for the later. + bp = target.BreakpointCreateByRegex("^NOTIFY_DEBUGGER_ABOUT_RX_PAGES$") + bp.SetScriptCallbackFunction('{}.handle_new_rx_page'.format(__name__)) + bp.SetAutoContinue(True) + print("-- LLDB integration loaded --") diff --git a/gemini_tasks/ios/Flutter/ephemeral/flutter_lldbinit b/gemini_tasks/ios/Flutter/ephemeral/flutter_lldbinit new file mode 100644 index 000000000..e3ba6fbed --- /dev/null +++ b/gemini_tasks/ios/Flutter/ephemeral/flutter_lldbinit @@ -0,0 +1,5 @@ +# +# Generated file, do not edit. +# + +command script import --relative-to-command-file flutter_lldb_helper.py diff --git a/gemini_tasks/linux/flutter/ephemeral/.plugin_symlinks/url_launcher_linux b/gemini_tasks/linux/flutter/ephemeral/.plugin_symlinks/url_launcher_linux new file mode 120000 index 000000000..7e6ea13b9 --- /dev/null +++ b/gemini_tasks/linux/flutter/ephemeral/.plugin_symlinks/url_launcher_linux @@ -0,0 +1 @@ +/Users/ewindmill/.pub-cache/hosted/pub.dev/url_launcher_linux-3.2.1/ \ No newline at end of file diff --git a/gemini_tasks/macos/Flutter/ephemeral/Flutter-Generated.xcconfig b/gemini_tasks/macos/Flutter/ephemeral/Flutter-Generated.xcconfig new file mode 100644 index 000000000..23fc2ae7c --- /dev/null +++ b/gemini_tasks/macos/Flutter/ephemeral/Flutter-Generated.xcconfig @@ -0,0 +1,11 @@ +// This is a generated file; do not edit or check into version control. +FLUTTER_ROOT=/Users/ewindmill/development/flutter +FLUTTER_APPLICATION_PATH=/Users/ewindmill/development/samples/gemini_tasks +COCOAPODS_PARALLEL_CODE_SIGN=true +FLUTTER_BUILD_DIR=build +FLUTTER_BUILD_NAME=1.0.0 +FLUTTER_BUILD_NUMBER=1 +DART_OBFUSCATION=false +TRACK_WIDGET_CREATION=true +TREE_SHAKE_ICONS=false +PACKAGE_CONFIG=.dart_tool/package_config.json diff --git a/gemini_tasks/macos/Flutter/ephemeral/Packages/FlutterGeneratedPluginSwiftPackage/Package.swift b/gemini_tasks/macos/Flutter/ephemeral/Packages/FlutterGeneratedPluginSwiftPackage/Package.swift new file mode 100644 index 000000000..970f29e87 --- /dev/null +++ b/gemini_tasks/macos/Flutter/ephemeral/Packages/FlutterGeneratedPluginSwiftPackage/Package.swift @@ -0,0 +1,28 @@ +// swift-tools-version: 5.9 +// The swift-tools-version declares the minimum version of Swift required to build this package. +// +// Generated file. Do not edit. +// + +import PackageDescription + +let package = Package( + name: "FlutterGeneratedPluginSwiftPackage", + platforms: [ + .macOS("10.15") + ], + products: [ + .library(name: "FlutterGeneratedPluginSwiftPackage", type: .static, targets: ["FlutterGeneratedPluginSwiftPackage"]) + ], + dependencies: [ + .package(name: "url_launcher_macos", path: "../.packages/url_launcher_macos") + ], + targets: [ + .target( + name: "FlutterGeneratedPluginSwiftPackage", + dependencies: [ + .product(name: "url-launcher-macos", package: "url_launcher_macos") + ] + ) + ] +) diff --git a/gemini_tasks/macos/Flutter/ephemeral/Packages/FlutterGeneratedPluginSwiftPackage/Sources/FlutterGeneratedPluginSwiftPackage/FlutterGeneratedPluginSwiftPackage.swift b/gemini_tasks/macos/Flutter/ephemeral/Packages/FlutterGeneratedPluginSwiftPackage/Sources/FlutterGeneratedPluginSwiftPackage/FlutterGeneratedPluginSwiftPackage.swift new file mode 100644 index 000000000..62e7b11aa --- /dev/null +++ b/gemini_tasks/macos/Flutter/ephemeral/Packages/FlutterGeneratedPluginSwiftPackage/Sources/FlutterGeneratedPluginSwiftPackage/FlutterGeneratedPluginSwiftPackage.swift @@ -0,0 +1,3 @@ +// +// Generated file. Do not edit. +// diff --git a/gemini_tasks/macos/Flutter/ephemeral/flutter_export_environment.sh b/gemini_tasks/macos/Flutter/ephemeral/flutter_export_environment.sh new file mode 100755 index 000000000..b1414fafb --- /dev/null +++ b/gemini_tasks/macos/Flutter/ephemeral/flutter_export_environment.sh @@ -0,0 +1,12 @@ +#!/bin/sh +# This is a generated file; do not edit or check into version control. +export "FLUTTER_ROOT=/Users/ewindmill/development/flutter" +export "FLUTTER_APPLICATION_PATH=/Users/ewindmill/development/samples/gemini_tasks" +export "COCOAPODS_PARALLEL_CODE_SIGN=true" +export "FLUTTER_BUILD_DIR=build" +export "FLUTTER_BUILD_NAME=1.0.0" +export "FLUTTER_BUILD_NUMBER=1" +export "DART_OBFUSCATION=false" +export "TRACK_WIDGET_CREATION=true" +export "TREE_SHAKE_ICONS=false" +export "PACKAGE_CONFIG=.dart_tool/package_config.json" diff --git a/gemini_tasks/windows/flutter/ephemeral/.plugin_symlinks/url_launcher_windows b/gemini_tasks/windows/flutter/ephemeral/.plugin_symlinks/url_launcher_windows new file mode 120000 index 000000000..211d895d3 --- /dev/null +++ b/gemini_tasks/windows/flutter/ephemeral/.plugin_symlinks/url_launcher_windows @@ -0,0 +1 @@ +/Users/ewindmill/.pub-cache/hosted/pub.dev/url_launcher_windows-3.1.4/ \ No newline at end of file diff --git a/pubspec.yaml b/pubspec.yaml index b0047f8e9..983998a1b 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -61,3 +61,8 @@ skip_ci: - add_to_app/multiple_flutters/multiple_flutters_module - add_to_app/plugin/flutter_module_using_plugin - add_to_app/prebuilt_module/flutter_module + +skip_ci_beta: + - material_3_demo + # TODO(ewindmill): info - lib/basic_text_input_client.dart:262:11 - 'setStyle' is deprecated and shouldn't be used. Use updateStyle instead. This feature was deprecated after v3.41.0-0.0.pre. Try replacing the use of the deprecated member with the replacement. - deprecated_member_use on beta branch + - simplistic_editor diff --git a/tool/ci_script.dart b/tool/ci_script.dart index 8aad89725..c53033920 100644 --- a/tool/ci_script.dart +++ b/tool/ci_script.dart @@ -1,3 +1,4 @@ +import 'dart:convert'; import 'dart:io'; import 'package:path/path.dart' as path; import 'package:yaml/yaml.dart'; @@ -8,19 +9,39 @@ Future main() async { final pubspecContent = await pubspecFile.readAsString(); final pubspecYaml = loadYaml(pubspecContent); + // contains full list of samples final workspace = pubspecYaml['workspace'] as YamlList?; + if (workspace == null) { print('No workspace found in pubspec.yaml'); exit(1); } + // CI always skips the samples on this list final skipCiList = pubspecYaml['skip_ci'] as YamlList?; + // CI will also skip for samples on specific branches + // This is useful when API changes in the beta branch are causing CI to fail + // and there isn't a solution that works in both beta and main + final channel = await _getFlutterChannel(); + print('Current Flutter channel: $channel'); + + final channelSkipKey = 'skip_ci_$channel'; + final channelSkipList = pubspecYaml[channelSkipKey] as YamlList?; + if (channelSkipList != null) { + print('Applying skips for channel "$channel": $channelSkipList'); + } + // pub workspace, only run 'get' once await _runCommand('flutter', ['pub', 'get'], workingDirectory: rootDir.path); final packages = workspace - .where((e) => skipCiList == null || !skipCiList.contains(e)) + .where((e) { + if (skipCiList != null && skipCiList.contains(e)) return false; + if (channelSkipList != null && channelSkipList.contains(e)) + return false; + return true; + }) .map((e) => e.toString()) .toList(); @@ -70,3 +91,23 @@ Future _runCommand( exit(exitCode); } } + +Future _getFlutterChannel() async { + try { + final result = await Process.run('flutter', [ + '--version', + '--machine', + ], runInShell: true); + if (result.exitCode != 0) { + print('Flutter version command failed with exit code ${result.exitCode}'); + print('Stdout: ${result.stdout}'); + print('Stderr: ${result.stderr}'); + return 'unknown'; + } + final machineInfo = jsonDecode(result.stdout as String); + return machineInfo['channel'] as String? ?? 'unknown'; + } catch (e) { + print('Error detecting Flutter channel: $e'); + return 'unknown'; + } +} diff --git a/tool/clean_all.dart b/tool/clean_all.dart new file mode 100644 index 000000000..d13b3d9cc --- /dev/null +++ b/tool/clean_all.dart @@ -0,0 +1,76 @@ +import 'dart:io'; +import 'package:path/path.dart' as path; +import 'package:yaml/yaml.dart'; + +/// Runs `flutter clean` in every package listed in the root pubspec.yaml +/// workspace. Useful for clearing stale build artifacts after switching Flutter +/// channels. +Future main() async { + final rootDir = Directory.current; + final pubspecFile = File(path.join(rootDir.path, 'pubspec.yaml')); + final pubspecContent = await pubspecFile.readAsString(); + final pubspecYaml = loadYaml(pubspecContent); + + final workspace = pubspecYaml['workspace'] as YamlList?; + if (workspace == null) { + print('No workspace found in pubspec.yaml'); + exit(1); + } + + final flutterBin = _resolveFlutterBin(); + print('Using flutter: $flutterBin'); + + var cleaned = 0; + var skipped = 0; + + for (final entry in workspace) { + final package = entry.toString(); + final packagePath = path.join(rootDir.path, package); + + // Only clean packages that have a pubspec.yaml (i.e. are Flutter/Dart pkgs) + final pubspec = File(path.join(packagePath, 'pubspec.yaml')); + if (!await pubspec.exists()) { + print('-- Skipping \'$package\' (no pubspec.yaml found)'); + skipped++; + continue; + } + + print('== Cleaning \'$package\' =='); + final process = await Process.start( + flutterBin, + ['clean'], + workingDirectory: packagePath, + runInShell: true, + mode: ProcessStartMode.inheritStdio, + ); + final exitCode = await process.exitCode; + if (exitCode != 0) { + print( + 'Warning: flutter clean failed with exit code $exitCode in $packagePath', + ); + } else { + cleaned++; + } + } + + print(''); + print('Done. Cleaned $cleaned package(s), skipped $skipped.'); +} + +/// Resolves the path to the `flutter` binary by finding it relative to the +/// running Dart SDK. Falls back to 'flutter' (uses PATH) if not found. +String _resolveFlutterBin() { + // Platform.resolvedExecutable points to the dart binary, e.g.: + // /path/to/flutter/bin/cache/dart-sdk/bin/dart + // Flutter binary is at /path/to/flutter/bin/flutter + final dartBin = File(Platform.resolvedExecutable); + final flutterBin = path.join( + dartBin.parent.parent.parent.parent.path, + 'bin', + 'flutter', + ); + if (File(flutterBin).existsSync()) { + return flutterBin; + } + return 'flutter'; // fallback to PATH +} diff --git a/tool/flutter_ci_script_beta.sh b/tool/flutter_ci_script_beta.sh deleted file mode 100755 index af1e154dc..000000000 --- a/tool/flutter_ci_script_beta.sh +++ /dev/null @@ -1,62 +0,0 @@ -#!/bin/bash - -set -e - -DIR="${BASH_SOURCE%/*}" -source "$DIR/flutter_ci_script_shared.sh" - -flutter doctor -v - -declare -ar PROJECT_NAMES=( - "add_to_app/android_view/flutter_module_using_plugin" - "add_to_app/books/flutter_module_books" - "add_to_app/fullscreen/flutter_module" - "add_to_app/multiple_flutters/multiple_flutters_module" - "add_to_app/plugin/flutter_module_using_plugin" - "add_to_app/prebuilt_module/flutter_module" - "analysis_defaults" - "android_splash_screen" - "animations" - "asset_transformation" - "background_isolate_channels" - "code_sharing/client" - "code_sharing/server" - "code_sharing/shared" - "compass_app/app" - "compass_app/server" - "context_menus" - "deeplink_store_example" - "desktop_photo_search/fluent_ui" - "desktop_photo_search/material" - "dynamic_theme" - "flutter_maps_firestore" - "form_app" - "game_template" - "google_maps" - "infinite_list" - "ios_app_clip" - # TODO(ewindmill): replace deprecated activeColor with activeThumbColor in 3.33 -# "isolate_example" - # TODO(ewindmill) - RadioGroup api changed. - # "material_3_demo" - "navigation_and_routing" - # TODO(domesticmouse): Angle brackets will be interpreted as HTML. - # "pedometer" - "pedometer/example" - "place_tracker" - "platform_channels" - "platform_design" - "platform_view_swift" - "provider_counter" - "provider_shopper" - "simple_shader" - "simplistic_calculator" - "simplistic_editor" - "testing_app" - "veggieseasons" - "web_embedding/element_embedding_demo" -) - -ci_projects "beta" "${PROJECT_NAMES[@]}" - -echo "-- Success --" diff --git a/tool/flutter_ci_script_master.sh b/tool/flutter_ci_script_master.sh deleted file mode 100755 index 77711edf7..000000000 --- a/tool/flutter_ci_script_master.sh +++ /dev/null @@ -1,65 +0,0 @@ -#!/bin/bash - -set -e - -DIR="${BASH_SOURCE%/*}" -source "$DIR/flutter_ci_script_shared.sh" - -flutter doctor -v - -declare -ar PROJECT_NAMES=( - "add_to_app/android_view/flutter_module_using_plugin" - "add_to_app/books/flutter_module_books" - "add_to_app/fullscreen/flutter_module" - "add_to_app/multiple_flutters/multiple_flutters_module" - "add_to_app/plugin/flutter_module_using_plugin" - "add_to_app/prebuilt_module/flutter_module" - "analysis_defaults" - "android_splash_screen" - "animations" - "asset_transformation" - "background_isolate_channels" - "code_sharing/client" - # TODO(ewindmill): The integration tests are failing - # "code_sharing/server" - "code_sharing/shared" - "compass_app/app" - # TODO(ewindmill): The integration tests are failing - # "compass_app/server" - "context_menus" - "date_planner" - "deeplink_store_example" - "desktop_photo_search/fluent_ui" - "desktop_photo_search/material" - "dynamic_theme" - "flutter_maps_firestore" - "form_app" - "game_template" - "google_maps" - "infinite_list" - "ios_app_clip" - # TODO(ewindmill): replace deprecated activeColor with activeThumbColor in 3.33 - # "isolate_example" - # TODO(ewindmill) - RadioGroup api changed. - # "material_3_demo" - "navigation_and_routing" - # TODO(domesticmouse): Angle brackets will be interpreted as HTML. - # "pedometer" - "pedometer/example" - "place_tracker" - "platform_channels" - "platform_design" - "platform_view_swift" - "provider_counter" - "provider_shopper" - "simple_shader" - "simplistic_calculator" - "simplistic_editor" - "testing_app" - "veggieseasons" - "web_embedding/element_embedding_demo" -) - -ci_projects "master" "${PROJECT_NAMES[@]}" - -echo "-- Success --" diff --git a/tool/flutter_ci_script_shared.sh b/tool/flutter_ci_script_shared.sh deleted file mode 100644 index 8b511a621..000000000 --- a/tool/flutter_ci_script_shared.sh +++ /dev/null @@ -1,33 +0,0 @@ -function ci_projects () { - local channel="$1" - - shift - local arr=("$@") - for PROJECT_NAME in "${arr[@]}" - do - echo "== Testing '${PROJECT_NAME}' on Flutter's $channel channel ==" - pushd "${PROJECT_NAME}" - - # Grab packages. - flutter pub get - - # Run the analyzer to find any static analysis issues. - dart analyze --fatal-infos --fatal-warnings - - # Run the formatter on all the dart files to make sure everything's linted. - dart format --output none . - - # Run the actual tests. - if [ -d "test" ] - then - if grep -q "flutter:" "pubspec.yaml"; then - flutter test - else - # If the project is not a Flutter project, use the Dart CLI. - dart test - fi - fi - - popd - done -} diff --git a/tool/flutter_ci_script_stable.sh b/tool/flutter_ci_script_stable.sh deleted file mode 100755 index 2d2604acf..000000000 --- a/tool/flutter_ci_script_stable.sh +++ /dev/null @@ -1,59 +0,0 @@ -#!/bin/bash - -set -e - -DIR="${BASH_SOURCE%/*}" -source "$DIR/flutter_ci_script_shared.sh" - -flutter doctor -v - -declare -ar PROJECT_NAMES=( - "add_to_app/android_view/flutter_module_using_plugin" - "add_to_app/books/flutter_module_books" - "add_to_app/fullscreen/flutter_module" - "add_to_app/multiple_flutters/multiple_flutters_module" - "add_to_app/plugin/flutter_module_using_plugin" - "add_to_app/prebuilt_module/flutter_module" - "analysis_defaults" - "android_splash_screen" - "animations" - "asset_transformation" - "background_isolate_channels" - "code_sharing/client" - "code_sharing/server" - "code_sharing/shared" - "compass_app/app" - "compass_app/server" - "context_menus" - "deeplink_store_example" - "desktop_photo_search/fluent_ui" - "desktop_photo_search/material" - "dynamic_theme" - "flutter_maps_firestore" - "form_app" - "game_template" - "google_maps" - "infinite_list" - "ios_app_clip" - "isolate_example" - "material_3_demo" - "platform_channels" - "platform_design" - "navigation_and_routing" - "pedometer" - "pedometer/example" - "place_tracker" - "platform_view_swift" - "provider_counter" - "provider_shopper" - "simple_shader" - "simplistic_calculator" - "simplistic_editor" - "testing_app" - "veggieseasons" - "web_embedding/element_embedding_demo" -) - -ci_projects "stable" "${PROJECT_NAMES[@]}" - -echo "-- Success --" diff --git a/tool/flutter_clean_packages.sh b/tool/flutter_clean_packages.sh deleted file mode 100644 index f6feecfd8..000000000 --- a/tool/flutter_clean_packages.sh +++ /dev/null @@ -1,77 +0,0 @@ -#!/bin/bash - -set -e - -flutter doctor -v - -declare -ar PROJECT_NAMES=( - "add_to_app/android_view/flutter_module_using_plugin" - "add_to_app/books/flutter_module_books" - "add_to_app/fullscreen/flutter_module" - "add_to_app/multiple_flutters/multiple_flutters_module" - "add_to_app/plugin/flutter_module_using_plugin" - "add_to_app/prebuilt_module/flutter_module" - "ai_recipe_generation" - "analysis_defaults" - "android_splash_screen" - "animations" - "asset_transformation" - "background_isolate_channels" - "code_sharing/client" - "code_sharing/server" - "code_sharing/shared" - "context_menus" - "deeplink_store_example" - "desktop_photo_search/fluent_ui" - "desktop_photo_search/material" - "dynamic_theme" - "experimental/federated_plugin/federated_plugin" - "experimental/federated_plugin/federated_plugin/example" - "experimental/federated_plugin/federated_plugin_macos" - "experimental/federated_plugin/federated_plugin_platform_interface" - "experimental/federated_plugin/federated_plugin_web" - "experimental/federated_plugin/federated_plugin_windows" - "experimental/pedometer" - "experimental/pedometer/example" - "experimental/varfont_shader_puzzle" - "experimental/web_dashboard" - "flutter_maps_firestore" - "form_app" - "game_template" - "google_maps" - "infinite_list" - "ios_app_clip" - "isolate_example" - "material_3_demo" - "navigation_and_routing" - "place_tracker" - "platform_channels" - "platform_design" - "platform_view_swift" - "provider_counter" - "provider_shopper" - "simple_shader" - "simplistic_calculator" - "simplistic_editor" - "testing_app" - "veggieseasons" - "web_embedding/element_embedding_demo" -) - -echo "--- Running flutter clean and flutter pub get for each sample ---" - -for PROJECT_NAME in "${PROJECT_NAMES[@]}" - do - echo "== Cleaning '${PROJECT_NAME}' with Flutter clean ==" - pushd "${PROJECT_NAME}" - - # run `flutter clean` for project - flutter clean - - # Grab packages. - flutter pub get - - popd - done - -echo "--- Success ---" \ No newline at end of file diff --git a/tool/flutter_pub_upgrade.sh b/tool/flutter_pub_upgrade.sh deleted file mode 100755 index cab1d8f6a..000000000 --- a/tool/flutter_pub_upgrade.sh +++ /dev/null @@ -1,16 +0,0 @@ -#!/bin/bash - -set -e - -scriptDirectory="$( cd "$( dirname "${BASH_SOURCE[0]}" )" >/dev/null 2>&1 && pwd )" - -# It seems federated_plugin_* isn't happy to run flutter pub upgrade -for dir in `find "${scriptDirectory}/.." -name pubspec.yaml -exec dirname {} \; | grep -v federated_plugin | grep -v experimental | sort` -do - ( - cd $dir - echo "Updating `pwd`" - flutter pub upgrade - flutter pub outdated - ) -done