Repository navigation
Release: build and ship the Android default library, collector and runtime - #519
Merged
Merged
Conversation
…ntime
The Windows release job now also builds, with the runner's Android NDK
(ANDROID_NDK_LATEST_HOME) and the same scripts a developer runs:
- the collector and the async runtime for Android API 29, arm64-v8a and
x86_64 (build_gc_release_android.bat, build_tslang_runtime_release_android.bat);
- the default library for both ABIs, release and debug, gc/rc/none
(TypeScriptCompilerDefaultLib's scripts/build_android.bat);
then runs test-compile-android-codegen and -link against them (failing,
not skipping, if the libraries are missing), and packages them in the
zip as android/<abi>/defaultlib/... (--default-lib-path=android/<abi>) and
android/<abi>/lib/{libgc.a,libTypeScriptAsyncRuntime.a} (--gc-lib-path,
--tslang-lib-path).
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What
The release workflow's Windows job (
create-release.yml,build_on_windows) now also builds everything Android needs, after the desktop default library, with the runner's preinstalled Android NDK (ANDROID_NDK_LATEST_HOME, falling back toANDROID_NDK_HOME):Install Ninja (
choco): the Android scripts use the NDK's CMake toolchain with Ninja.Build Android Collector and Async Runtime:
scripts\build_gc_release_android.batandscripts\build_tslang_runtime_release_android.bat, for API 29, arm64-v8a and x86_64. It also exportsANDROID_NDK_HOMEfor the later steps.Build Android Default Library: TypeScriptCompilerDefaultLib's
scripts\build_android.batwith the tslang just built: both ABIs × release/debug × gc/rc/none.Test Compiler for Android:
test-compile-android-codegenandtest-compile-android-link(an exe and a.solinked for x86_64 with the libraries just built). The step fails if the link test reports itself skipped, so missing libraries can't pass silently.Packaging: the Windows zip gets, per ABI:
android/<abi>/defaultlib/...→--default-lib-path=android/<abi>android/<abi>/lib/libgc.a,android/<abi>/lib/libTypeScriptAsyncRuntime.a→--gc-lib-path/--tslang-lib-pathThe Android trees are moved out of the default library's
__build, which is packaged whole, so they aren't shipped twice.Verification
This workflow runs only on a
v*tag, so it can't run in this PR. I verified the new steps locally with the same commands:ctest -R test-compile-android-: both pass, and neither is skipped.__build.tslang --emit=exeand--emit=dlllink for arm64-v8a and x86_64 using only the staged package paths.What I couldn't check locally:
choco install ninjasucceeds onwindows-2025-vs2026.Both show up early in the job log; the NDK revision is printed.
Related: #518 turns parallel marking off for the Android collector (bdwgc/bdwgc#980). Whichever version of that script is on
mainat release time is what this builds.🤖 Generated with Claude Code