Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
117 commits
Select commit Hold shift + click to select a range
d845c4c
Run classic Android applications as Codename One applications
shai-almog Oct 3, 2026
1a639a9
Fix CI and address review findings on Android compatibility
shai-almog Oct 3, 2026
dd11c9f
Fix native and JavaScript builds of Kotlin code; isolate runtime tests
shai-almog Oct 3, 2026
9c45a32
Refresh every edited constructor's inlining plan after dead field eli…
shai-almog Oct 3, 2026
68c7a4f
Recapture the Android interop side-by-side images
shai-almog Oct 3, 2026
3411cbf
Memoize the static accessor fold so its include is never missing
shai-almog Oct 3, 2026
a80a0d2
Bind the JavaScript port's static interop stubs
shai-almog Oct 3, 2026
c011d07
Seed the AndroidCompat goldens for Android and JavaScript
shai-almog Oct 3, 2026
d0f0009
Return LocalForage values from the bridge without a cast
shai-almog Oct 3, 2026
be73a56
Seed the AndroidCompat goldens for the Windows port
shai-almog Oct 3, 2026
0a20093
Seed the AndroidCompat goldens for the Linux port
shai-almog Oct 3, 2026
4fec084
Unwrap JavaScript strings without casting them to JSString
shai-almog Oct 3, 2026
2ed558c
Seed the JavaScript AndroidCompatData golden
shai-almog Oct 3, 2026
059b2cb
Rebaseline hello's translation memory on the Windows AMD runners
shai-almog Oct 3, 2026
0312e91
Recalibrate hello's Windows AMD memory row from three runs
shai-almog Oct 3, 2026
3542134
Rebaseline hello's translation memory on Windows arm64 too
shai-almog Oct 3, 2026
9aa07fd
Seed the AndroidCompat goldens for iOS (Metal, Xcode 27) and Mac Cata…
shai-almog Oct 4, 2026
1f58daf
Fix five Android compatibility runtime review findings
shai-almog Oct 4, 2026
b0f0836
Match intent filters whole, name assets collision-free, compare resou…
shai-almog Oct 4, 2026
fccac7f
Rebaseline hello's translation memory on Linux x64 (EPYC 7763)
shai-almog Oct 4, 2026
09c28cd
Pin the light appearance for the AndroidCompat screenshots
shai-almog Oct 4, 2026
422dc87
Seed the AndroidCompat goldens for watchOS, tvOS and macOS
shai-almog Oct 4, 2026
f357b51
Fix four Android compatibility review findings, document two pushbacks
shai-almog Oct 4, 2026
8526ff2
Test that a theme refresh keeps a toolbar form's back command
shai-almog Oct 4, 2026
14c0ce4
Clip paths within the clip, rotate bitmap pixels, keep spans in subse…
shai-almog Oct 4, 2026
371517d
Seed the AndroidCompat goldens for iOS Metal and the tvOS main screen
shai-almog Oct 5, 2026
b54b77a
Rebaseline hello's RAM ratio on the AMD family 26 Windows x64 runner
shai-almog Oct 5, 2026
6fcf0f7
Fix six Android compatibility review findings, document one pushback
shai-almog Oct 5, 2026
e80afea
Fix six Android compatibility review findings
shai-almog Oct 5, 2026
e1e5c34
Fix three Android compatibility review findings, document two pushbacks
shai-almog Oct 5, 2026
d043f7d
Fix seven Android compatibility review findings
shai-almog Oct 5, 2026
4dbf196
Chain the Windows x64 family 25 hello rebaseline on #5940's
shai-almog Oct 5, 2026
c38bf50
Fix six Android compatibility review findings, document one pushback
shai-almog Oct 5, 2026
e06f8e2
Fix six Android compatibility review findings, document one pushback
shai-almog Oct 5, 2026
2a6325a
Fix two Android compatibility review findings, document one pushback
shai-almog Oct 5, 2026
23e60fc
Diff the perf-baseline check against the merged base; recalibrate hel…
shai-almog Oct 5, 2026
d0e0ebb
Fix six Android compatibility review findings, document one pushback
shai-almog Oct 5, 2026
ee171a3
Fix five Android compatibility review findings
shai-almog Oct 5, 2026
0bc516a
Fix three Android compatibility review findings
shai-almog Oct 5, 2026
38113b4
Recalibrate hello RAM on Windows x64 AMD family 25 from eight runs
shai-almog Oct 5, 2026
d80985d
Fix six Android compatibility review findings, document one pushback
shai-almog Oct 5, 2026
6cd40dd
Fix six Android compatibility review findings
shai-almog Oct 5, 2026
b5f2eb4
Fix five Android compatibility review findings
shai-almog Oct 5, 2026
1c31e90
Fix two Android compatibility review findings
shai-almog Oct 5, 2026
6231146
Rebaseline hello RAM on Linux x64 AMD EPYC 9V74
shai-almog Oct 5, 2026
35a28c1
Rebaseline objectAllocation on the Linux x64 AMD EPYC 9V74 runner
shai-almog Oct 5, 2026
37ed6a1
Give the iOS Metal screenshot jobs room for the larger hello suite
shai-almog Oct 5, 2026
a22ef79
Fix four Android compatibility review findings
shai-almog Oct 5, 2026
dfd44c5
Fix four Android compatibility review findings
shai-almog Oct 5, 2026
19585fe
Fix three Android compatibility review findings
shai-almog Oct 5, 2026
c49e7b3
Fix four more Android compatibility review findings
shai-almog Oct 5, 2026
5299ca8
Fix four more Android compatibility review findings
github-actions[bot] Oct 6, 2026
346103c
Rebaseline objectAllocation RAM on the AMD EPYC 9V45
github-actions[bot] Oct 6, 2026
67b765a
Fix five more Android compatibility review findings
github-actions[bot] Oct 6, 2026
8ff723f
Merge master into android-compat
github-actions[bot] Oct 6, 2026
26cc0cd
Show the Playground smoke host on the EDT and fail fast on a failed c…
github-actions[bot] Oct 6, 2026
920bc20
Fix six more Android compatibility review findings
github-actions[bot] Oct 6, 2026
2f3a643
Fix four more Android compatibility review findings
github-actions[bot] Oct 6, 2026
cba19c9
Fix five more Android compatibility review findings
github-actions[bot] Oct 6, 2026
57e41a1
Merge master into android-compat
github-actions[bot] Oct 6, 2026
2a27cf7
Fix four more Android compatibility review findings
github-actions[bot] Oct 6, 2026
a4b075a
Fix three more Android compatibility review findings
github-actions[bot] Oct 6, 2026
fb650d9
Fix Path.addPath(this) loop; document Android-matching Rect/LayerDraw…
github-actions[bot] Oct 6, 2026
454fd4d
Fix five more Android compatibility review findings
github-actions[bot] Oct 6, 2026
51cbdd7
Fix three more Android compatibility review findings
github-actions[bot] Oct 6, 2026
8408195
Fix four more Android compatibility review findings
github-actions[bot] Oct 6, 2026
a12f5c6
Composite translucent saveLayer offscreen; clip rotated rects as shap…
github-actions[bot] Oct 6, 2026
9fef1dc
Fix three more Android compatibility review findings
github-actions[bot] Oct 6, 2026
e94027b
Fix five more Android compatibility review findings
github-actions[bot] Oct 6, 2026
87419a5
Fix five more Android compatibility review findings
github-actions[bot] Oct 6, 2026
b147629
Fix four more Android compatibility review findings
github-actions[bot] Oct 6, 2026
e60c88e
Fix four more Android compatibility review findings
github-actions[bot] Oct 6, 2026
6fff2ec
Fix three more Android compatibility review findings
github-actions[bot] Oct 6, 2026
6061d83
Merge master into android-compat
github-actions[bot] Oct 6, 2026
ee5b835
Fix four more Android compatibility review findings
github-actions[bot] Oct 6, 2026
94ae982
Fix four more Android compatibility review findings
github-actions[bot] Oct 6, 2026
4e59d9e
Fix three more Android compatibility review findings
github-actions[bot] Oct 6, 2026
57795f1
Declare each Maven plugin and dependency once, which Maven 3.10 requires
github-actions[bot] Oct 6, 2026
eb5499a
Recalibrate hello RAM on Windows arm64 from eleven runs
github-actions[bot] Oct 6, 2026
ed08b65
Give vm-tests room for the larger hello translation
github-actions[bot] Oct 6, 2026
309a2ea
Close buffered streams for good and fix two TextUtils gaps
github-actions[bot] Oct 6, 2026
8f868d2
Fix four Android compatibility widget review findings
github-actions[bot] Oct 6, 2026
d97664d
Fix five Android compatibility review findings
github-actions[bot] Oct 6, 2026
fc13cd4
Fix dividers, foreground gravity, scroll margins and seek capture
github-actions[bot] Oct 6, 2026
d7a052c
Keep spans in AllCaps and hand selector tints to every child
github-actions[bot] Oct 6, 2026
8b885b1
Redial the JS screenshot sink after the server sheds its idle socket
github-actions[bot] Oct 6, 2026
5f80b83
Navigate Up to the manifest parent and honour two Android contracts
github-actions[bot] Oct 6, 2026
b955754
Merge master into android-compat
github-actions[bot] Oct 7, 2026
0b6bf4c
ci: raise iOS packaging and native-ios limits for the larger hello app
github-actions[bot] Oct 7, 2026
d2d2319
Reconcile list checks by id, close PrintWriter, mirror view drawables
github-actions[bot] Oct 7, 2026
8cd197e
Define Android compatibility release limits and fix retained text and…
github-actions[bot] Oct 7, 2026
9d15539
Fix Android compatibility lifecycle and UI review findings and guide …
github-actions[bot] Oct 7, 2026
db79a3d
Preserve Android form state and fix sharing, grid rows, and deleted s…
github-actions[bot] Oct 7, 2026
ff060d5
Merge master and reconcile duplicate dead-field elimination fix
github-actions[bot] Oct 7, 2026
db1ca8e
Preserve Android widget state and defer cosmetic compatibility gaps
github-actions[bot] Oct 7, 2026
85b9a5d
Fix Android launch reentrancy, task reset, and localized month parsing
github-actions[bot] Oct 7, 2026
f3efb38
Observe Playground animation startup within a bounded interval
github-actions[bot] Oct 7, 2026
378d5ba
Clear weak references before reclaiming fresh legacy arrays
github-actions[bot] Oct 7, 2026
4785fee
Fix Android review regressions and copyright CI gate
github-actions[bot] Oct 7, 2026
7ad1f62
Fix modal cleanup race and bound Android review scope
github-actions[bot] Oct 7, 2026
82d33bc
Fix Android review regressions and resume reattached GPU rendering
github-actions[bot] Oct 7, 2026
2ad7f97
Fix lifecycle review issues and stabilize CI validation
github-actions[bot] Oct 7, 2026
1bab364
Fix compatibility regressions and isolate GC benchmarks
github-actions[bot] Oct 7, 2026
f131272
Fix URI, list, clock, and toast review findings
github-actions[bot] Oct 7, 2026
f26a919
Guard reentrant Android callbacks and snapshot queued results
github-actions[bot] Oct 7, 2026
dfad5f3
Calibrate expanded hello RAM on Windows Model 173
github-actions[bot] Oct 7, 2026
be9af23
Record Linux translator RAM improvement on EPYC 9V74
github-actions[bot] Oct 7, 2026
22ba9ff
Wake continuous WebGL surface after first layout
github-actions[bot] Oct 7, 2026
cb6470c
Fix reentrant Android compatibility callbacks and chooser dispatch
github-actions[bot] Oct 8, 2026
2c2c23e
Use guide prose conventions for restoration limitation
github-actions[bot] Oct 8, 2026
1906af6
Keep native foreach layouts within surviving classes
github-actions[bot] Oct 8, 2026
2c8aa98
Handle reentrant Android callbacks and stale asynchronous deliveries
github-actions[bot] Oct 8, 2026
1be5a2f
Exclude watchOS from iOS hinge implementation
github-actions[bot] Oct 8, 2026
e83d587
Guard Android result delivery and matching edge cases
github-actions[bot] Oct 8, 2026
d237c05
Guard Android canvas targets and reentrant UI state
github-actions[bot] Oct 8, 2026
d1dc494
Merge master into Android compatibility branch
github-actions[bot] Oct 8, 2026
b50835f
Merge master and preserve isolated VM benchmarks
github-actions[bot] Oct 8, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
103 changes: 103 additions & 0 deletions .github/workflows/android-compat.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,103 @@
name: Android compatibility

# Classic Android applications built as Codename One applications: the resource
# compiler (maven/android-res-compiler), the android.* runtime
# (maven/android-compat) and the build steps that compile, relocate and package
# them (build-engine, the Maven and Gradle plugins, the archetype profile).
#
# unit tests the compiler's encoding and qualifier rules,
# the runtime's table reader, the remapper and
# the project importer
# android-compat-test.sh every sample under scripts/android-compat-samples
# imported unmodified, built by Maven and Gradle,
# checked for unrelocated android.* references,
# and staged for iOS, Android, JavaScript and the
# desktop with identical uploads from both tools
on:
pull_request:
branches: [ master ]
paths:
- 'maven/android-compat/**'
- 'maven/android-res-compiler/**'
- 'maven/build-engine/**'
- 'maven/codenameone-maven-plugin/**'
- 'maven/codenameone-gradle-plugin/**'
- 'maven/project-model/**'
- 'maven/cn1app-archetype/**'
- 'maven/pom.xml'
- 'maven/integration-tests/android-compat-test.sh'
- 'maven/integration-tests/android-gradle-incremental-test.sh'
- 'maven/integration-tests/inc/**'
- 'scripts/android-compat-samples/**'
- '.github/workflows/android-compat.yml'
push:
branches: [ master ]
paths:
- 'maven/android-compat/**'
- 'maven/android-res-compiler/**'
- 'maven/build-engine/**'
- 'maven/codenameone-maven-plugin/**'
- 'maven/codenameone-gradle-plugin/**'
- 'maven/project-model/**'
- 'maven/cn1app-archetype/**'
- 'maven/pom.xml'
- 'maven/integration-tests/android-compat-test.sh'
- 'maven/integration-tests/android-gradle-incremental-test.sh'
- 'maven/integration-tests/inc/**'
- 'scripts/android-compat-samples/**'
- '.github/workflows/android-compat.yml'

concurrency:
group: ${{ github.workflow }}-${{ github.head_ref || github.run_id }}
cancel-in-progress: true

jobs:
android-compat:
runs-on: ubuntu-24.04
timeout-minutes: 60
env:
CN1_GRADLE_REQUIRED: '1'
steps:
- uses: actions/checkout@v6
# Installed FIRST so the JDK 8 below is the one JAVA_HOME names.
- name: Set up JDK 17 for Gradle
uses: actions/setup-java@v5
with:
java-version: '17'
distribution: 'temurin'
- run: echo "GRADLE_JAVA_HOME=$JAVA_HOME" >> $GITHUB_ENV
- name: Set up JDK 8
uses: actions/setup-java@v5
with:
java-version: '8'
distribution: 'temurin'
cache: 'maven'
# xvfb for the CSS compiler, which opens an AWT frame.
- name: Install xvfb
run: bash scripts/ci/apt-get-install.sh xvfb
- name: Build Codename One Maven artifacts (includes archetypes and both plugins)
env:
RETRY_ONLY_MATCHING: transient
RETRY_ATTEMPTS: '5'
RETRY_DELAY_SECONDS: '60'
run: |
cd maven
bash ../scripts/ci/retry.sh xvfb-run -a mvn install -Plocal-dev-javase -DskipTests -Darchetype.test.skip=true -Dmaven.javadoc.skip=true
- name: Unit tests
working-directory: maven
run: xvfb-run -a mvn -B -Plocal-dev-javase -pl android-res-compiler,android-compat,build-engine test
- name: Refresh archetype catalog
run: |
cd maven
xvfb-run -a mvn archetype:update-local-catalog -Plocal-dev-javase
xvfb-run -a mvn archetype:crawl -Plocal-dev-javase
- name: Android samples, imported and built by Maven and Gradle
working-directory: maven/integration-tests
run: xvfb-run -a bash android-compat-test.sh
- name: Upload the test projects' logs
if: failure()
uses: actions/upload-artifact@v7
with:
name: android-compat-logs
path: maven/integration-tests/build/android-compat/**/*.log
if-no-files-found: ignore
13 changes: 8 additions & 5 deletions .github/workflows/ios-packaging.yml
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,8 @@ jobs:
# sequence. On a cold runner all tests passed after 119m44s, leaving only
# 16s of the old two-hour budget for artifact upload and cache saves. Keep
# the individual step limits below and allow 30m of finalization headroom.
timeout-minutes: 150
# The hello app now also translates the Android compatibility gallery, its runtime and the Kotlin stdlib; 150 no longer covers the three builds.
timeout-minutes: 210
# Exercises both CocoaPods and SPM in a single Xcode project. Catches
# regressions in either dependency manager (each pathway runs end to end)
# and additionally validates that they coexist correctly. Also turns on
Expand Down Expand Up @@ -163,7 +164,8 @@ jobs:
./scripts/run-ios-device-release-build.sh \
"${{ steps.build_ios_app.outputs.workspace }}" \
"${{ steps.build_ios_app.outputs.scheme }}"
timeout-minutes: 45
# A cold Release compile of the hello app (now with the Android compatibility gallery, its runtime and the Kotlin stdlib) took 42.5 of 45 minutes.
timeout-minutes: 70

# The binary half of scripts-ios.yml's private-API gate. App Store Connect scans the
# linked executable, so this reads what it would read: every import of the Release
Expand Down Expand Up @@ -219,7 +221,8 @@ jobs:
"${{ steps.build_ios_app.outputs.scheme }}"
# run-ios-ui-tests.sh has a 12-minute no-progress watchdog and a
# bounded 35-minute suite cap; include native build/cleanup headroom.
timeout-minutes: 65
# The cold -O1 compile alone reached 52 minutes once the hello app gained the Android compatibility gallery, its runtime and the Kotlin stdlib.
timeout-minutes: 100

- name: Run native iOS notification tests
env:
Expand Down Expand Up @@ -247,8 +250,8 @@ jobs:
# So the higher of the two, not either alone: the watch build is added work on top of the
# rebuild, not a re-description of it. The real fix is to inject before the UI-smoke step
# so this build is genuinely incremental; until then the budget has to cover the build it
# actually does.
timeout-minutes: 45
# actually does. The hello app's growth (the Android compatibility gallery, its runtime and the Kotlin stdlib) added roughly half again to that build.
timeout-minutes: 60

- name: Upload packaging artifacts
if: ${{ !cancelled() }}
Expand Down
3 changes: 2 additions & 1 deletion .github/workflows/parparvm-tests.yml
Original file line number Diff line number Diff line change
Expand Up @@ -177,7 +177,8 @@ jobs:
vm-tests:
runs-on: ubuntu-24.04
# The full suite takes about an hour before the bounded GC benchmark arms.
# Leave time for both; each benchmark workload retains its own timeout.
# Android compatibility and Kotlin translation add time; leave room for
# both phases while each GC workload retains its own timeout.
timeout-minutes: 120
# The two database engines the backend speaks a wire protocol to.
#
Expand Down
14 changes: 10 additions & 4 deletions .github/workflows/pr.yml
Original file line number Diff line number Diff line change
Expand Up @@ -40,6 +40,8 @@ on:
- 'scripts/check-native-cpp-linkage.py'
# Same: the builder define-toggle lint runs from this workflow and nowhere else.
- 'scripts/check-builder-define-toggles.py'
- 'scripts/check-cast-semantics.sh'
- 'scripts/cast-semantics-baseline.txt'
# The build hint gates are run from this workflow and nowhere else, and one
# of them holds an empty baseline. Ignoring the whole directory meant a
# change that breaks a gate, or that adds a line to the baseline, could
Expand Down Expand Up @@ -108,6 +110,8 @@ on:
- 'scripts/check-native-cpp-linkage.py'
# Same: the builder define-toggle lint runs from this workflow and nowhere else.
- 'scripts/check-builder-define-toggles.py'
- 'scripts/check-cast-semantics.sh'
- 'scripts/cast-semantics-baseline.txt'
# The build hint gates are run from this workflow and nowhere else, and one
# of them holds an empty baseline. Ignoring the whole directory meant a
# change that breaks a gate, or that adds a line to the baseline, could
Expand Down Expand Up @@ -387,7 +391,7 @@ jobs:
-Dcn1.binaries="${CN1_BINARIES}" \
-Pcompile-android \
-DbackendAnalysis \
-pl android,ios,project-model,build-engine,codenameone-maven-plugin,codenameone-gradle-plugin,backend,backend-test,backend-parparvm,javac -am verify
-pl android,ios,project-model,build-engine,codenameone-maven-plugin,codenameone-gradle-plugin,backend,backend-test,backend-parparvm,javac,android-res-compiler,android-compat -am verify
- name: Type-check the SQLCipher-backed database package
if: ${{ matrix.java-version == 8 }}
env:
Expand Down Expand Up @@ -602,7 +606,7 @@ jobs:
- name: Generate static analysis HTML summaries
if: ${{ !cancelled() && matrix.java-version == 8 }}
env:
QUALITY_REPORT_TARGET_DIRS: maven/core-unittests/target:maven/android/target:maven/ios/target:vm/ByteCodeTranslator/target:maven/codenameone-maven-plugin/target:maven/build-engine/target:maven/project-model/target:maven/codenameone-gradle-plugin/target:maven/build-hint-catalog/target:maven/build-hint-tools/target:maven/backend/target:maven/backend-test/target:maven/backend-parparvm/target:maven/javac/target
QUALITY_REPORT_TARGET_DIRS: maven/core-unittests/target:maven/android/target:maven/ios/target:vm/ByteCodeTranslator/target:maven/codenameone-maven-plugin/target:maven/build-engine/target:maven/project-model/target:maven/codenameone-gradle-plugin/target:maven/build-hint-catalog/target:maven/build-hint-tools/target:maven/backend/target:maven/backend-test/target:maven/backend-parparvm/target:maven/javac/target:maven/android-res-compiler/target:maven/android-compat/target
QUALITY_REPORT_SERVER_URL: ${{ github.server_url }}
QUALITY_REPORT_REPOSITORY: ${{ github.repository }}
QUALITY_REPORT_REF: ${{ github.event.pull_request.head.sha || github.sha }}
Expand All @@ -622,6 +626,8 @@ jobs:
"bytecode-translator:vm/ByteCodeTranslator/target" \
"maven-plugin:maven/codenameone-maven-plugin/target" \
"build-engine:maven/build-engine/target" \
"android-res-compiler:maven/android-res-compiler/target" \
"android-compat:maven/android-compat/target" \
"project-model:maven/project-model/target" \
"gradle-plugin:maven/codenameone-gradle-plugin/target" \
"backend:maven/backend/target" \
Expand Down Expand Up @@ -752,11 +758,11 @@ jobs:
- name: Generate quality report summary
if: ${{ !cancelled() && matrix.java-version == 8 }}
env:
QUALITY_REPORT_TARGET_DIRS: maven/core-unittests/target:maven/android/target:maven/ios/target:vm/ByteCodeTranslator/target:maven/codenameone-maven-plugin/target:maven/build-engine/target:maven/project-model/target:maven/codenameone-gradle-plugin/target:maven/build-hint-catalog/target:maven/build-hint-tools/target:maven/backend/target:maven/backend-test/target:maven/backend-parparvm/target:maven/javac/target
QUALITY_REPORT_TARGET_DIRS: maven/core-unittests/target:maven/android/target:maven/ios/target:vm/ByteCodeTranslator/target:maven/codenameone-maven-plugin/target:maven/build-engine/target:maven/project-model/target:maven/codenameone-gradle-plugin/target:maven/build-hint-catalog/target:maven/build-hint-tools/target:maven/backend/target:maven/backend-test/target:maven/backend-parparvm/target:maven/javac/target:maven/android-res-compiler/target:maven/android-compat/target
# Every project listed here must produce a SpotBugs report and that
# report must be empty. A missing report fails the gate too, so a
# SpotBugs run that silently stops running is not mistaken for clean.
QUALITY_REPORT_REQUIRED_SPOTBUGS: core-unittests:android:ios:ByteCodeTranslator:codenameone-maven-plugin:build-engine:project-model:codenameone-gradle-plugin:build-hint-catalog:build-hint-tools:backend:backend-test:javac
QUALITY_REPORT_REQUIRED_SPOTBUGS: core-unittests:android:ios:ByteCodeTranslator:codenameone-maven-plugin:build-engine:project-model:codenameone-gradle-plugin:build-hint-catalog:build-hint-tools:backend:backend-test:javac:android-res-compiler:android-compat
# PMD and Checkstyle run on the core and on the backend runtime, and each
# must produce its report: without one, the forbidden-rule gate below it
# has nothing to read and passes.
Expand Down
4 changes: 3 additions & 1 deletion .github/workflows/scripts-ios-native.yml
Original file line number Diff line number Diff line change
Expand Up @@ -29,6 +29,7 @@ jobs:
# Allow setup plus the separately bounded 30-minute generation and 45-minute
# XCTest build/run steps. A 45-minute job cap canceled a progressing native
# build after only 34 minutes of the XCTest step in run 37728629000.
# The hello app also translates the Android compatibility gallery and Kotlin stdlib.
timeout-minutes: 90
steps:
- uses: actions/checkout@v6
Expand Down Expand Up @@ -134,7 +135,8 @@ jobs:
# scheme carries an embedded watch app with a ParparVM translation of its own, and
# xcodebuild builds that before it can run a single test -- 16 of the 25 minutes went on
# compiling it. The packaging job already allows 65 for the same reason.
timeout-minutes: 45
# Still compiling at 36 minutes once the hello app gained the Android compatibility gallery, its runtime and the Kotlin stdlib.
timeout-minutes: 70

- name: Upload native iOS artifacts
if: ${{ !cancelled() }}
Expand Down
10 changes: 6 additions & 4 deletions .github/workflows/scripts-ios.yml
Original file line number Diff line number Diff line change
Expand Up @@ -159,7 +159,8 @@ jobs:
pull-requests: write
issues: write
runs-on: macos-15
timeout-minutes: 75
# The hello suite now also compiles the Android compatibility gallery, its runtime and the Kotlin stdlib; 75 left no margin.
timeout-minutes: 95
env:
GITHUB_TOKEN: ${{ secrets.CN1SS_GH_TOKEN }}
# The device runner reports logical test failures through CN1SS log
Expand Down Expand Up @@ -415,7 +416,7 @@ jobs:
"${{ steps.build-ios-app.outputs.scheme }}"
# Match the GL envelope; run-ios-ui-tests.sh still fails a stalled
# DeviceRunner after 12 minutes without CN1SS progress.
timeout-minutes: 65
timeout-minutes: 80

- name: Upload iOS Metal port status
if: ${{ !cancelled() }}
Expand Down Expand Up @@ -545,7 +546,8 @@ jobs:
pull-requests: write
issues: write
runs-on: xcode-27
timeout-minutes: 75
# The hello suite now also compiles the Android compatibility gallery, its runtime and the Kotlin stdlib; 75 left no margin.
timeout-minutes: 95
env:
GITHUB_TOKEN: ${{ secrets.CN1SS_GH_TOKEN }}
# The device runner reports logical test failures through CN1SS log
Expand Down Expand Up @@ -831,7 +833,7 @@ jobs:
"${{ steps.build-ios-app.outputs.scheme }}"
# Match the GL envelope; run-ios-ui-tests.sh still fails a stalled
# DeviceRunner after 12 minutes without CN1SS progress.
timeout-minutes: 65
timeout-minutes: 80

# NO port-status upload here, deliberately. The published port report is
# keyed on the port id `ios-metal`, and there is only one iOS port -- this
Expand Down
21 changes: 21 additions & 0 deletions .github/workflows/scripts-javascript.yml
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,10 @@ on:
- 'scripts/run-javascript-lifecycle-tests.mjs'
- 'scripts/test-javascript-surface-replay.mjs'
- 'scripts/test-javascript-weak-refs.mjs'
- 'scripts/test-javascript-native-stub-bindings.mjs'
- 'scripts/ci/tests/cn1ss-async-sink-test.sh'
- 'scripts/ci/tests/Cn1ssAsyncSinkTest.java'
- 'scripts/fidelity-app/common/src/main/java/com/codenameone/fidelity/Cn1ssAsyncSink.java'
- 'scripts/test-javascript-vault-bridge.mjs'
- 'scripts/test-javascript-composited-rendering.mjs'
- 'scripts/javascript/composited-app/**'
Expand Down Expand Up @@ -67,6 +71,10 @@ on:
- 'scripts/run-javascript-lifecycle-tests.mjs'
- 'scripts/test-javascript-surface-replay.mjs'
- 'scripts/test-javascript-weak-refs.mjs'
- 'scripts/test-javascript-native-stub-bindings.mjs'
- 'scripts/ci/tests/cn1ss-async-sink-test.sh'
- 'scripts/ci/tests/Cn1ssAsyncSinkTest.java'
- 'scripts/fidelity-app/common/src/main/java/com/codenameone/fidelity/Cn1ssAsyncSink.java'
- 'scripts/run-javascript-lifecycle-tests.sh'
- 'scripts/verify-javascript-lens-parity.mjs'
- 'scripts/build-javascript-port-hellocodenameone.sh'
Expand Down Expand Up @@ -177,6 +185,19 @@ jobs:
- name: Weak reference guards
run: node scripts/test-javascript-weak-refs.mjs

# A static interop factory (JSString.valueOf, Int32Array.create, ...) runs
# its Java body -- `return null;` -- unless port.js binds it; an unbound
# JSString.valueOf made every directory marker a delete.
- name: Interop stub bindings
run: node scripts/test-javascript-native-stub-bindings.mjs

# Plain JVM, no build, so it also runs ahead of the ParparVM build. The
# sink the Java-side captures ship through must redial after the test
# server sheds its idle socket (close 1006): latching "failed" on that
# close lost VideoIODecodedFrames with websocket-unavailable.
- name: CN1SS async sink reconnect
run: bash scripts/ci/tests/cn1ss-async-sink-test.sh

- name: Cache codenameone-tools
uses: actions/cache@v5
with:
Expand Down
Loading