Skip to content

Commit

Permalink
Add CI builder for windows-arm64. (flutter#38394) (flutter#38739)
Browse files Browse the repository at this point in the history
* 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.
  • Loading branch information
pbo-linaro authored and ricardoamador committed Jan 25, 2023
1 parent 7771197 commit b478197
Show file tree
Hide file tree
Showing 6 changed files with 138 additions and 3 deletions.
8 changes: 8 additions & 0 deletions .ci.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -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:
Expand Down
2 changes: 1 addition & 1 deletion build/archives/BUILD.gn
Original file line number Diff line number Diff line change
Expand Up @@ -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",
Expand Down
124 changes: 124 additions & 0 deletions ci/builders/windows_arm_host_engine.json
Original file line number Diff line number Diff line change
@@ -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": []
}
]
}
3 changes: 2 additions & 1 deletion shell/platform/embedder/BUILD.gn
Original file line number Diff line number Diff line change
Expand Up @@ -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",
Expand Down
2 changes: 1 addition & 1 deletion shell/platform/windows/client_wrapper/BUILD.gn
Original file line number Diff line number Diff line change
Expand Up @@ -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",
Expand Down
2 changes: 2 additions & 0 deletions web_sdk/BUILD.gn
Original file line number Diff line number Diff line change
Expand Up @@ -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.
Expand Down

0 comments on commit b478197

Please sign in to comment.