Skip to content

build: enable the Android SDKs to be built, packaged, and tested #78410

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 1 commit into
base: main
Choose a base branch
from

Conversation

compnerd
Copy link
Member

@compnerd compnerd commented Jan 2, 2025

Build and package the Android SDKs on Windows as part of the toolchain distribution. This requires further fine tuning to improve the DevEx, however, this ensures that we do not backslide on the ability to build and package the SDK as a starting point.

@compnerd
Copy link
Member Author

compnerd commented Jan 2, 2025

@swift-ci please test Windows platform

1 similar comment
@compnerd
Copy link
Member Author

compnerd commented Jan 3, 2025

@swift-ci please test Windows platform

@compnerd
Copy link
Member Author

compnerd commented Jan 3, 2025

@swift-ci please build toolchain Windows platform

Build and package the Android SDKs on Windows as part of the toolchain
distribution. This requires further fine tuning to improve the DevEx,
however, this ensures that we do not backslide on the ability to build
and package the SDK as a starting point.

Currently, we build for Android ARM64 only, but are likely to switch to
X64 to get test coverage.
@compnerd
Copy link
Member Author

@swift-ci please smoke test

@weliveindetail
Copy link
Member

PR test failed with:

********************
Failed Tests (1):
  Swift(android-aarch64) :: ClangImporter/availability_custom_domains.swift

********************
Unexpectedly Passed Tests (3):
  Swift(android-aarch64) :: Driver/parseable_output.swift
  Swift(android-aarch64) :: Driver/parseable_output_unicode.swift
  Swift-validation(android-aarch64) :: compiler_crashers_fixed/28795-inprotocol-isrequirementsignaturecomputed-missing-signature.swift

Added 1 more XFAL in #80053. The XPASSes are in the filter already and should have been skipped. Not sure why it doesn't apply here. Same code works for LLDB.

@compnerd
Copy link
Member Author

@swift-ci please test Windows platform

@compnerd compnerd changed the title build: enable the Android SDKs to be built and packaged build: enable the Android SDKs to be built, packaged, and tested Mar 18, 2025
@compnerd
Copy link
Member Author

CC: @shahmishal, @etcwilde

This adds only the ARM64 slice for PR testing (we run through all the architectures on the nightly).

@compnerd
Copy link
Member Author

@swift-ci please test Windows platform

1 similar comment
@compnerd
Copy link
Member Author

@swift-ci please test Windows platform

@compnerd compnerd requested a review from shahmishal March 21, 2025 15:15
@shahmishal
Copy link
Member

How much more time does this add to the build?

@shahmishal
Copy link
Member

@swift-ci please test Windows platform

@compnerd
Copy link
Member Author

compnerd commented Mar 28, 2025

The build will add ~12m for the SDK, and the non-executable testing time (which fluctuates)

@compnerd
Copy link
Member Author

compnerd commented Mar 29, 2025

Testing Time: 1266.55s

Build-Runtime             Android  aarch64 00:08:17.95  2.9%  
Build-ExperimentalRuntime Android  aarch64 00:05:23.93  1.9%  
Build-Foundation          Android  aarch64 00:02:25.02  0.8%  
Build-Foundation          Android  aarch64 00:02:20.04  0.8%  
Build-Sanitizers          Android  aarch64 00:00:58.11  0.3%  
Build-LLVM                Android  aarch64 00:00:55.94  0.3%  
Build-CURL                Android  aarch64 00:00:47.73  0.3%  
Build-Dispatch            Android  aarch64 00:00:27.92  0.2%  
Build-Testing             Android  aarch64 00:00:27.17  0.2%  
Build-Inspect             Android  aarch64 00:00:23.69  0.1%  
Build-XML2                Android  aarch64 00:00:17.73  0.1%  
Build-ZLib                Android  aarch64 00:00:14.36  0.1%  
Build-XCTest              Android  aarch64 00:00:06.94  0%    

We are basically building a full Android SDK (Core Libraries, Overlays, Supplemental Libraries, libdispatch, Foundation, XCTest, Testing), building the new experimental runtime build, and running the non-executable tests.

We could shave the time for the experimental runtime builds I suppose, but it takes about 23m to do the build and 21m to run the tests. We could reduce the build times down to 18m by skipping the new runtimes build.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants