diff --git a/.ci/scripts/create_all_packages_app.sh b/.ci/scripts/create_all_packages_app.sh index 4440dfe2608..a0ff3ad89d4 100755 --- a/.ci/scripts/create_all_packages_app.sh +++ b/.ci/scripts/create_all_packages_app.sh @@ -4,5 +4,16 @@ # found in the LICENSE file. set -e +# The base exclusion file for all_packages app. +exclusions=("script/configs/exclude_all_packages_app.yaml") + +# Add a wasm-specific exclusion file if "--wasm" is specified. +if [[ "$1" == "--wasm" ]]; then + exclusions+=",script/configs/exclude_all_packages_app_wasm.yaml" +fi + +# Delete ./all_packages if it exists already +rm -rf ./all_packages + dart ./script/tool/bin/flutter_plugin_tools.dart create-all-packages-app \ - --output-dir=. --exclude script/configs/exclude_all_packages_app.yaml + --output-dir=. --exclude "$exclusions" diff --git a/.ci/targets/web_build_all_packages.yaml b/.ci/targets/web_build_all_packages.yaml index 1be790f62d5..bb782c560d2 100644 --- a/.ci/targets/web_build_all_packages.yaml +++ b/.ci/targets/web_build_all_packages.yaml @@ -10,3 +10,10 @@ tasks: - name: build all_packages app for Web release script: .ci/scripts/build_all_packages_app.sh args: ["web", "release"] + - name: (Wasm) create all_packages app + script: .ci/scripts/create_all_packages_app.sh + args: ["--wasm"] + infra_step: true # Note infra steps failing prevents "always" from running. + - name: (Wasm) build all_packages app for Web release + script: .ci/scripts/build_all_packages_app.sh + args: ["web", "release", "--wasm"] diff --git a/script/configs/exclude_all_packages_app.yaml b/script/configs/exclude_all_packages_app.yaml index 040087f10f5..ca15045d59d 100644 --- a/script/configs/exclude_all_packages_app.yaml +++ b/script/configs/exclude_all_packages_app.yaml @@ -9,5 +9,5 @@ # NOTE: camera_android is semi-excluded via special casing in the repo tools. # See create_all_packages_app_command.dart. -# This is a permament entry, as it should never be a direct app dependency. +# This is a permanent entry, as it should never be a direct app dependency. - plugin_platform_interface diff --git a/script/configs/exclude_all_packages_app_wasm.yaml b/script/configs/exclude_all_packages_app_wasm.yaml new file mode 100644 index 00000000000..d10cdbf6ff2 --- /dev/null +++ b/script/configs/exclude_all_packages_app_wasm.yaml @@ -0,0 +1,15 @@ +# This list should be kept as short as possible, and things should remain here +# only as long as necessary, since in general the goal is for all of the latest +# versions of packages to be mutually compatible, and compilable with Wasm. + +# This is only used for wasm compilation. Once all packages in the repo have +# been migrated, remove this file and use `exclude_all_packages_app.yaml` only. + +# Packages that aren't migrated yet. +# https://github.com/flutter/flutter/issues/117022 +- camera +- webview_flutter + +# Dependencies are not migrated yet +# https://github.com/flutter/flutter/issues/148624 +- google_maps_flutter