Skip to content

Publish Android arm64 LTO artifact#284

Open
matthargett wants to merge 1 commit into
oven-sh:mainfrom
matthargett:agent/android-arm64-lto-artifact
Open

Publish Android arm64 LTO artifact#284
matthargett wants to merge 1 commit into
oven-sh:mainfrom
matthargett:agent/android-arm64-lto-artifact

Conversation

@matthargett

@matthargett matthargett commented Jul 12, 2026

Copy link
Copy Markdown

Publish Android arm64 LTO artifact
https://bugs.webkit.org/ — N/A; this changes oven-sh/Bun release packaging only, not upstream WebKit behavior.

Reviewed by NOBODY (OOPS!).

BabylonNative previously consumed the jsc-android-buildscripts package maintained by the React Native community, but that project and package have been abandoned. Using Bun's JSC instead keeps the JavaScriptCore build aligned with another actively maintained JavaScript runtime.

Bun's current prebuiltSuffix() already resolves Android arm64 + LTO to bun-webkit-linux-arm64-android-lto.tar.gz, but the WebKit release workflow does not currently produce that asset. Downstream embedders therefore have to use the native Android archive. BabylonJS/JsRuntimeHost#206 does that on Android while consuming Bun's LTO archive on Linux.

Add an Android arm64 Release/LTO lane using the same full-LTO and whole-program-vtable flags as the Linux arm64 LTO artifact. The Android build scripts already pass LTO_FLAG through target ICU and WebKit compilation with LLVM 21, so the remaining work is to add the matrix entry and publish its archive. Existing Android arm64/x64 native and debug artifacts remain unchanged.

Only arm64 LTO is added. The large ICU and WebKit build directories remain tmpfs-backed, and the release runner continues to handle only the compressed artifact. The resulting bitcode must be final-linked with LLVM/LLD 21. Bun's Android cross-build already does that; consumers using an NDK-provided linker need a matching LLVM version. A possible follow-up is to build this artifact with the Android NDK toolchain for consumers such as BabylonNative.

Validation performed:

  • actionlint parses the modified workflow after excluding the repository's existing custom-runner and unrelated baseline diagnostics.
  • bash -n android-release.sh
  • shellcheck android-release.sh
  • Matrix and artifact-name assertions against the parsed workflow.
  • git diff --check

A full artifact build requires a maintainer-triggered Preview Build because the repository intentionally rejects automatic preview runs from external PR authors.

  • .github/workflows/build-reusable.yml:
    Add the Android arm64 Release/LTO matrix entry, forward its LTO_FLAG, and download, rename, and upload bun-webkit-linux-arm64-android-lto.tar.gz with the other Android release assets.

@matthargett matthargett marked this pull request as ready for review July 12, 2026 08:02

@claude claude Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Claude Code Review

This pull request is from a fork — automated review is disabled. A repository maintainer can comment @claude review to run a one-time review.

@coderabbitai

coderabbitai Bot commented Jul 12, 2026

Copy link
Copy Markdown

Review Change Stack

Walkthrough

Changes

Android LTO artifact

Layer / File(s) Summary
Build matrix and LTO invocation
.github/workflows/build-reusable.yml
The linux-android matrix adds an arm64 Android LTO variant, and the build command passes its LTO_FLAG to android-release.sh.
Release artifact packaging
.github/workflows/build-reusable.yml
The release job downloads, renames, and includes the Android LTO archive in the final asset list.
🚥 Pre-merge checks | ✅ 3 | ❌ 1

❌ Failed checks (1 warning)

Check name Status Explanation Resolution
Description check ⚠️ Warning The description covers the change and validation, but it does not follow the template's required Bugzilla bug link/ID and commit-message structure. Add the bug title and Bugzilla bug ID/link, and format the description to match the repository template, including the required explanatory section and file list.
✅ Passed checks (3 passed)
Check name Status Explanation
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
Title check ✅ Passed The title accurately summarizes the main change: publishing the Android arm64 LTO artifact.

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@matthargett

Copy link
Copy Markdown
Author

Updated the description to the repository commit-message template. The Bugzilla field is explicitly N/A because this is oven-sh/Bun release-workflow packaging rather than an upstream WebKit behavior change; the Reviewed-by and per-file sections are now present. @coderabbitai review

@coderabbitai

coderabbitai Bot commented Jul 12, 2026

Copy link
Copy Markdown

@matthargett Thanks for updating the description — noted on the Bugzilla N/A rationale and the added Reviewed-by/per-file sections. I'll kick off a fresh review of the changes now.

✅ Action performed

Review finished.

Note: CodeRabbit is an incremental review system and does not re-review already reviewed commits. This command is applicable only when automatic reviews are paused.

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.

1 participant