Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
25 commits
Select commit Hold shift + click to select a range
9b5b0b3
Add Android emulator test script with Hello World C program
CedricGuillemet Apr 20, 2026
64fccbf
Fix avdmanager SDK detection for Homebrew installation
CedricGuillemet Apr 20, 2026
3d7d3a6
Fix emulator boot: resilient adb waits + correct SDK path
CedricGuillemet Apr 20, 2026
943adf0
Add UnitTests Android emulator pipeline and fix fdsan crash in Stdout…
CedricGuillemet Apr 20, 2026
a3df3be
Remove Hello World test pipeline; keep only UnitTests pipeline
CedricGuillemet Apr 20, 2026
1d9ef82
Fix syntax error in test result parsing loop
CedricGuillemet Apr 20, 2026
4426159
Capture logcat to scripts/logcat.log during test run
CedricGuillemet Apr 20, 2026
1515908
Fix LOGCAT_PID unbound variable in cleanup trap
CedricGuillemet Apr 20, 2026
417d352
Disable emulator snapshots with -no-snapshot
CedricGuillemet Apr 20, 2026
ff6bb10
Point AndroidExtensions to fork branch with fdsan fix
CedricGuillemet Apr 20, 2026
26d06d5
Replace shell script with CI workflow; enable Android V8 tests
CedricGuillemet Apr 20, 2026
d00b0aa
Enable Android_JSC job; restore logcat.log gitignore entry
CedricGuillemet Apr 20, 2026
d804458
Revert .gitignore to upstream state
CedricGuillemet Apr 20, 2026
69adf6a
Fix gradlew path: avoid cd in android-emulator-runner script
CedricGuillemet Apr 20, 2026
0cdbe20
Fix gradlew args: use single-line script to avoid backslash continuat…
CedricGuillemet Apr 20, 2026
853028f
Fix android/log.h include casing for case-sensitive Linux CI
CedricGuillemet Apr 20, 2026
61f7b01
Add logcat capture as CI artifact for Android test diagnosis
CedricGuillemet Apr 20, 2026
2898f04
Revert "Add logcat capture as CI artifact for Android test diagnosis"
CedricGuillemet Apr 21, 2026
b6f9576
Point AndroidExtensions to BabylonJS upstream merged commit
CedricGuillemet Apr 21, 2026
8fd66d8
Bump actions/checkout to v5 (Node.js 24)
CedricGuillemet Apr 21, 2026
799f75c
Increase WebSocket multiple-connection test timeout to 10s
CedricGuillemet Apr 21, 2026
e54df03
Bump actions/checkout to v5 across all workflows (Node.js 24)
CedricGuillemet Apr 21, 2026
64a8916
Opt into Node.js 24 for actions in build-android.yml
CedricGuillemet Apr 21, 2026
e8d2fb7
Revert "Opt into Node.js 24 for actions in build-android.yml"
CedricGuillemet Apr 21, 2026
82fd3c9
Use dot notation for inputs.js-engine (consistent with other workflows)
CedricGuillemet Apr 21, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
20 changes: 11 additions & 9 deletions .github/workflows/build-android.yml
Original file line number Diff line number Diff line change
Expand Up @@ -15,13 +15,20 @@ jobs:
runs-on: ubuntu-latest
timeout-minutes: 30
steps:
- uses: actions/checkout@v4
- uses: actions/checkout@v5

- uses: actions/setup-java@v4
with:
distribution: temurin
java-version: '17'

- name: Install NDK
run: echo "y" | $ANDROID_HOME/cmdline-tools/latest/bin/sdkmanager "ndk;${{ env.NDK_VERSION }}"

- name: Build JS test bundle
working-directory: Tests
run: npm install

- name: Enable KVM
run: |
echo 'KERNEL=="kvm", GROUP="kvm", MODE="0666", OPTIONS+="static_node=kvm"' | sudo tee /etc/udev/rules.d/99-kvm4all.rules
Expand All @@ -34,13 +41,8 @@ jobs:
api-level: 33
target: google_apis
arch: x86_64
script: |
cd Tests/UnitTests/Android
chmod +x gradlew
./gradlew connectedAndroidTest \
-PabiFilters=x86_64 \
-PjsEngine=${{ inputs['js-engine'] }} \
-PndkVersion=${{ env.NDK_VERSION }}
emulator-options: -no-snapshot -no-window -no-boot-anim -no-audio
script: chmod +x Tests/UnitTests/Android/gradlew && Tests/UnitTests/Android/gradlew -p Tests/UnitTests/Android connectedAndroidTest -PabiFilters=x86_64 -PjsEngine=${{ inputs.js-engine }} -PndkVersion=${{ env.NDK_VERSION }}

- name: Dump Test Results
if: always()
Expand All @@ -55,6 +57,6 @@ jobs:
if: always()
uses: actions/upload-artifact@v4
with:
name: AndroidTestResults_${{ inputs['js-engine'] }}
name: AndroidTestResults_${{ inputs.js-engine }}
path: Tests/UnitTests/Android/app/build/outputs/androidTest-results/connected
if-no-files-found: ignore
2 changes: 1 addition & 1 deletion .github/workflows/build-ios.yml
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ jobs:
runs-on: ${{ inputs.runs-on }}
timeout-minutes: 30
steps:
- uses: actions/checkout@v4
- uses: actions/checkout@v5

- name: Select Xcode ${{ inputs.xcode-version }}
run: sudo xcode-select --switch /Applications/Xcode_${{ inputs.xcode-version }}.app/Contents/Developer
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/build-linux.yml
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@ jobs:
CC: ${{ inputs.cc }}
CXX: ${{ inputs.cxx }}
steps:
- uses: actions/checkout@v4
- uses: actions/checkout@v5

- name: Install packages
run: |
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/build-macos.yml
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@ jobs:
runs-on: ${{ inputs.runs-on }}
timeout-minutes: 15
steps:
- uses: actions/checkout@v4
- uses: actions/checkout@v5

- name: Select Xcode ${{ inputs.xcode-version }}
run: sudo xcode-select --switch /Applications/Xcode_${{ inputs.xcode-version }}.app/Contents/Developer
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/build-uwp.yml
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ jobs:
runs-on: windows-latest
timeout-minutes: 15
steps:
- uses: actions/checkout@v4
- uses: actions/checkout@v5

- name: Configure CMake
run: >
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/build-win32.yml
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ jobs:
runs-on: windows-latest
timeout-minutes: 15
steps:
- uses: actions/checkout@v4
- uses: actions/checkout@v5

- name: Configure CMake
run: cmake -B Build/Win32 -A ${{ inputs.platform }} -D NAPI_JAVASCRIPT_ENGINE=${{ inputs.js-engine }}
Expand Down
19 changes: 9 additions & 10 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -58,16 +58,15 @@ jobs:
js-engine: V8

# ── Android ───────────────────────────────────────────────────
# TODO: Re-enable when Android emulator works reliably on GitHub Actions runners.
# Android_JSC:
# uses: ./.github/workflows/build-android.yml
# with:
# js-engine: JavaScriptCore

# Android_V8:
# uses: ./.github/workflows/build-android.yml
# with:
# js-engine: V8
Android_JSC:
uses: ./.github/workflows/build-android.yml
with:
js-engine: JavaScriptCore

Android_V8:
uses: ./.github/workflows/build-android.yml
with:
js-engine: V8

# ── macOS ─────────────────────────────────────────────────────
macOS_Xcode164:
Expand Down
2 changes: 1 addition & 1 deletion CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ include(FetchContent)
# --------------------------------------------------
FetchContent_Declare(AndroidExtensions
GIT_REPOSITORY https://github.com/BabylonJS/AndroidExtensions.git
GIT_TAG 2e85a8d43b89246c460112c9e5546ad54b6e87b4
GIT_TAG 5fe60c8634dd9a5df76888e73e69202875e894f0
EXCLUDE_FROM_ALL)
FetchContent_Declare(arcana.cpp
GIT_REPOSITORY https://github.com/microsoft/arcana.cpp.git
Expand Down
2 changes: 1 addition & 1 deletion Tests/UnitTests/Android/app/src/main/cpp/JNI.cpp
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
#include <jni.h>
#include <Android/log.h>
#include <android/log.h>
#include <AndroidExtensions/Globals.h>
#include <AndroidExtensions/JavaWrappers.h>
#include <AndroidExtensions/StdoutLogger.h>
Expand Down
1 change: 1 addition & 0 deletions Tests/UnitTests/Scripts/tests.ts
Original file line number Diff line number Diff line change
Expand Up @@ -449,6 +449,7 @@ if (hostPlatform !== "Unix") {
});

it("should connect correctly with multiple websocket connections", function (done) {
this.timeout(10000);
const testMessage1 = "testMessage1";
const testMessage2 = "testMessage2";
let error: unknown;
Expand Down
Loading