From b4781971f0eec1aa2041dc38c4b60a0850fd46c7 Mon Sep 17 00:00:00 2001 From: Pierrick Bouvier <101587250+pbo-linaro@users.noreply.github.com> Date: Thu, 12 Jan 2023 00:01:08 +0100 Subject: [PATCH] Add CI builder for windows-arm64. (#38394) (#38739) * Generate zip archives for Windows following target platform. * Add CI builder for windows-arm64. All packages can be cross compiled from an x64 machine. Unittests are disabled, as they require an arm64 machine. * Add windows-arm64 to CI. --- .ci.yaml | 8 ++ build/archives/BUILD.gn | 2 +- ci/builders/windows_arm_host_engine.json | 124 ++++++++++++++++++ shell/platform/embedder/BUILD.gn | 3 +- .../platform/windows/client_wrapper/BUILD.gn | 2 +- web_sdk/BUILD.gn | 2 + 6 files changed, 138 insertions(+), 3 deletions(-) create mode 100644 ci/builders/windows_arm_host_engine.json diff --git a/.ci.yaml b/.ci.yaml index 51a164672434b..f556349a4cdd6 100644 --- a/.ci.yaml +++ b/.ci.yaml @@ -510,6 +510,14 @@ targets: release_build: "true" config_name: windows_host_engine + - name: Windows windows_arm_host_engine + bringup: true + recipe: engine_v2/engine_v2 + timeout: 60 + properties: + release_build: "true" + config_name: windows_arm_host_engine + - name: Windows Unopt recipe: engine/engine_unopt properties: diff --git a/build/archives/BUILD.gn b/build/archives/BUILD.gn index 90993ddb42793..023cafdffee65 100644 --- a/build/archives/BUILD.gn +++ b/build/archives/BUILD.gn @@ -227,7 +227,7 @@ if (build_engine_artifacts && !flutter_prebuilt_dart_sdk) { # Archives Flutter Windows Artifacts if (host_os == "win") { zip_bundle("windows_flutter") { - output = "$full_platform_name-$flutter_runtime_mode/$full_platform_name-flutter.zip" + output = "$full_target_platform_name-$flutter_runtime_mode/$full_target_platform_name-flutter.zip" deps = [ "//flutter/shell/platform/common:publish_headers", "//flutter/shell/platform/windows:flutter_windows", diff --git a/ci/builders/windows_arm_host_engine.json b/ci/builders/windows_arm_host_engine.json new file mode 100644 index 0000000000000..a0c20004f0671 --- /dev/null +++ b/ci/builders/windows_arm_host_engine.json @@ -0,0 +1,124 @@ +{ + "builds": [ + { + "archives": [ + { + "base_path": "out/host_debug_arm64/zip_archives/", + "type": "gcs", + "include_paths": [ + "out/host_debug_arm64/zip_archives/windows-arm64/artifacts.zip", + "out/host_debug_arm64/zip_archives/windows-arm64/windows-arm64-embedder.zip", + "out/host_debug_arm64/zip_archives/windows-arm64/font-subset.zip", + "out/host_debug_arm64/zip_archives/dart-sdk-windows-arm64.zip", + "out/host_debug_arm64/zip_archives/windows-arm64-debug/windows-arm64-flutter.zip", + "out/host_debug_arm64/zip_archives/windows-arm64/flutter-cpp-client-wrapper.zip", + "out/host_debug_arm64/zip_archives/flutter-web-sdk-windows-arm64.zip" + ], + "name": "host_debug_arm64" + } + ], + "drone_dimensions": [ + "device_type=none", + "os=Windows-10" + ], + "gclient_custom_vars": { + "download_android_deps": false + }, + "gn": [ + "--runtime-mode", + "debug", + "--full-dart-sdk", + "--no-lto", + "--windows-cpu", + "arm64" + ], + "name": "host_debug_arm64", + "ninja": { + "config": "host_debug_arm64", + "targets": [ + "flutter/build/archives:artifacts", + "flutter/build/archives:embedder", + "flutter/tools/font-subset", + "flutter/build/archives:dart_sdk_archive", + "flutter/shell/platform/windows/client_wrapper:client_wrapper_archive", + "flutter/build/archives:windows_flutter", + "flutter/web_sdk" + ] + }, + "tests": [] + }, + { + "archives": [ + { + "base_path": "out/host_profile_arm64/zip_archives/", + "type": "gcs", + "include_paths": [ + "out/host_profile_arm64/zip_archives/windows-arm64-profile/windows-arm64-flutter.zip" + ], + "name": "host_profile_arm64" + } + ], + "drone_dimensions": [ + "device_type=none", + "os=Windows-10" + ], + "gclient_custom_vars": { + "download_android_deps": false + }, + "gn": [ + "--runtime-mode", + "profile", + "--no-lto", + "--windows-cpu", + "arm64" + ], + "name": "host_profile_arm64", + "ninja": { + "config": "host_profile_arm64", + "targets": [ + "windows", + "gen_snapshot", + "flutter/build/archives:windows_flutter" + ] + }, + "tests": [] + }, + { + "archives": [ + { + "base_path": "out/host_release_arm64/zip_archives/", + "type": "gcs", + "include_paths": [ + "out/host_release_arm64/zip_archives/windows-arm64-release/windows-arm64-flutter.zip" + ], + "name": "host_profile_arm64" + } + ], + "drone_dimensions": [ + "device_type=none", + "os=Windows-10" + ], + "gclient_custom_vars": { + "download_android_deps": false + }, + "generators": {}, + "gn": [ + "--runtime-mode", + "release", + "--no-lto", + "--windows-cpu", + "arm64" + ], + "name": "host_release_arm64", + "ninja": { + "config": "host_release_arm64", + "targets": [ + "windows", + "gen_snapshot", + "flutter/build/archives:windows_flutter" + ] + }, + "tests": [] + } + ] +} diff --git a/shell/platform/embedder/BUILD.gn b/shell/platform/embedder/BUILD.gn index 491f6575bd428..9f61e97a3b0d8 100644 --- a/shell/platform/embedder/BUILD.gn +++ b/shell/platform/embedder/BUILD.gn @@ -530,7 +530,8 @@ if (is_mac) { if (host_os == "linux" || host_os == "win") { zip_bundle("embedder-archive") { - output = "$full_platform_name/$full_platform_name-embedder.zip" + output = + "$full_target_platform_name/$full_target_platform_name-embedder.zip" deps = [ "//flutter/shell/platform/embedder:copy_headers", "//flutter/shell/platform/embedder:flutter_engine_library", diff --git a/shell/platform/windows/client_wrapper/BUILD.gn b/shell/platform/windows/client_wrapper/BUILD.gn index 02724a5083f31..99b9f0c8b2dd8 100644 --- a/shell/platform/windows/client_wrapper/BUILD.gn +++ b/shell/platform/windows/client_wrapper/BUILD.gn @@ -113,7 +113,7 @@ win_client_wrapper_file_archive_list = [ ] zip_bundle("client_wrapper_archive") { - output = "$full_platform_name/flutter-cpp-client-wrapper.zip" + output = "$full_target_platform_name/flutter-cpp-client-wrapper.zip" deps = [ ":client_wrapper_windows", ":publish_wrapper_windows", diff --git a/web_sdk/BUILD.gn b/web_sdk/BUILD.gn index d76ba1c9c3dd1..a9e6385a6ea45 100644 --- a/web_sdk/BUILD.gn +++ b/web_sdk/BUILD.gn @@ -547,6 +547,8 @@ if (!is_fuchsia) { zip_bundle_from_file("flutter_web_sdk_archive") { if (target_os == "wasm") { output = "flutter-web-sdk.zip" + } else if (is_win) { + output = "flutter-web-sdk-${full_target_platform_name}.zip" } else { # TODO(jacksongardner): remove this once we stop making platform-specific # flutter_web_sdk archives.