Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
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
264 changes: 264 additions & 0 deletions .github/ci/apple-checks.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,264 @@
{
"ios": {
"pull_request": [
".github/workflows/scripts-ios.yml",
".github/workflows/_build-ios-port.yml",
"scripts/setup-workspace.sh",
"scripts/build-ios-port.sh",
"scripts/build-ios-app.sh",
"scripts/check-ios-framework-links.py",
"scripts/check-ios-sdk-deltas.py",
"scripts/check-ios-private-api.py",
"scripts/lib/xcode.sh",
"scripts/run-ios-ui-tests.sh",
"scripts/ci/boot-ios-simulator.sh",
"scripts/run-watch-ui-tests.sh",
"scripts/run-tv-ui-tests.sh",
"scripts/run-ios-native-tests.sh",
"scripts/ios/notification-tests/native-tests/**",
"scripts/ios/notification-tests/install-native-notification-tests.sh",
"scripts/ios/notification-tests/**",
"scripts/hellocodenameone/**",
"scripts/ios/tests/**",
"scripts/ios/screenshots-metal/**",
"scripts/ios/screenshots-metal-27/**",
"scripts/ios/screenshots-watch/**",
"scripts/ios/screenshots-tv/**",
"scripts/templates/**",
"!scripts/templates/**/*.md",
"CodenameOne/src/**",
"!CodenameOne/src/**/*.md",
"Ports/iOSPort/**",
"!Ports/iOSPort/**/*.md",
"native-themes/ios-modern/**",
"!native-themes/ios-modern/**/*.md",
"vm/**",
"!vm/**/*.md",
"tests/**",
"!tests/**/*.md",
"!docs/**",
"maven/**",
"!maven/cn1-ai-*/**",
"!maven/cn1-admob/**",
"!maven/cn1-applovin/**",
"!maven/cn1-unity-levelplay/**",
"!maven/core-unittests/**",
"vm/backend/demo/cn1ss/**",
"scripts/lib/cn1ss.sh"
],
"push": [
".github/workflows/scripts-ios.yml",
".github/workflows/_build-ios-port.yml",
"scripts/setup-workspace.sh",
"scripts/build-ios-port.sh",
"scripts/build-ios-app.sh",
"scripts/check-ios-framework-links.py",
"scripts/check-ios-sdk-deltas.py",
"scripts/check-ios-private-api.py",
"scripts/lib/xcode.sh",
"scripts/run-ios-ui-tests.sh",
"scripts/ci/boot-ios-simulator.sh",
"scripts/run-watch-ui-tests.sh",
"scripts/run-tv-ui-tests.sh",
"scripts/run-ios-native-tests.sh",
"scripts/ios/notification-tests/native-tests/**",
"scripts/ios/notification-tests/install-native-notification-tests.sh",
"scripts/ios/notification-tests/**",
"scripts/hellocodenameone/**",
"scripts/ios/tests/**",
"scripts/ios/screenshots-metal/**",
"scripts/ios/screenshots-metal-27/**",
"scripts/ios/screenshots-watch/**",
"scripts/ios/screenshots-tv/**",
"scripts/templates/**",
"!scripts/templates/**/*.md",
"CodenameOne/src/**",
"!CodenameOne/src/**/*.md",
"Ports/iOSPort/**",
"!Ports/iOSPort/**/*.md",
"native-themes/ios-modern/**",
"!native-themes/ios-modern/**/*.md",
"vm/**",
"!vm/**/*.md",
"tests/**",
"!tests/**/*.md",
"!docs/**",
"maven/**",
"!maven/cn1-ai-*/**",
"!maven/cn1-admob/**",
"!maven/cn1-applovin/**",
"!maven/cn1-unity-levelplay/**",
"!maven/core-unittests/**",
"vm/backend/demo/cn1ss/**",
"scripts/lib/cn1ss.sh"
]
},
"native": {
"pull_request": [
".github/workflows/scripts-ios-native.yml",
".github/workflows/_build-ios-port.yml",
"scripts/setup-workspace.sh",
"scripts/build-ios-port.sh",
"scripts/build-ios-app.sh",
"scripts/run-ios-native-tests.sh",
"scripts/lib/xcode.sh",
"scripts/ios/create-shared-scheme.py",
"scripts/ios/notification-tests/native-tests/**",
"scripts/ios/notification-tests/install-native-notification-tests.sh",
"scripts/ios/notification-tests/**",
"scripts/hellocodenameone/**",
"scripts/templates/**",
"!scripts/templates/**/*.md",
"CodenameOne/src/**",
"!CodenameOne/src/**/*.md",
"Ports/iOSPort/**",
"!Ports/iOSPort/**/*.md",
"native-themes/ios-modern/**",
"!native-themes/ios-modern/**/*.md",
"vm/**",
"!vm/**/*.md",
"tests/**",
"!tests/**/*.md",
"!docs/**",
"maven/**",
"!maven/cn1-ai-*/**",
"!maven/cn1-admob/**",
"!maven/cn1-applovin/**",
"!maven/cn1-unity-levelplay/**",
"!maven/core-unittests/**"
],
"push": [
".github/workflows/scripts-ios-native.yml",
".github/workflows/_build-ios-port.yml",
"scripts/setup-workspace.sh",
"scripts/build-ios-port.sh",
"scripts/build-ios-app.sh",
"scripts/run-ios-native-tests.sh",
"scripts/lib/xcode.sh",
"scripts/ios/create-shared-scheme.py",
"scripts/ios/notification-tests/native-tests/**",
"scripts/ios/notification-tests/install-native-notification-tests.sh",
"scripts/ios/notification-tests/**",
"scripts/hellocodenameone/**",
"scripts/templates/**",
"!scripts/templates/**/*.md",
"CodenameOne/src/**",
"!CodenameOne/src/**/*.md",
"Ports/iOSPort/**",
"!Ports/iOSPort/**/*.md",
"native-themes/ios-modern/**",
"!native-themes/ios-modern/**/*.md",
"vm/**",
"!vm/**/*.md",
"tests/**",
"!tests/**/*.md",
"!docs/**",
"maven/**",
"!maven/cn1-ai-*/**",
"!maven/cn1-admob/**",
"!maven/cn1-applovin/**",
"!maven/cn1-unity-levelplay/**",
"!maven/core-unittests/**"
]
},
"packaging": {
"pull_request": [
".github/workflows/ios-packaging.yml",
".github/workflows/_build-ios-port.yml",
"maven/codenameone-maven-plugin/**",
"vm/ByteCodeTranslator/**",
"Ports/iOSPort/**",
"scripts/build-ios-app.sh",
"scripts/lib/xcode.sh",
"scripts/run-ios-device-release-build.sh",
"scripts/check-ios-private-api.py",
"scripts/check-ios-sdk-deltas.py",
"scripts/run-ios-ui-tests.sh",
"scripts/run-ios-native-tests.sh",
"scripts/ios/**",
"scripts/hellocodenameone/**",
"!docs/**"
],
"push": [
".github/workflows/ios-packaging.yml",
".github/workflows/_build-ios-port.yml",
"maven/codenameone-maven-plugin/**",
"vm/ByteCodeTranslator/**",
"Ports/iOSPort/**",
"scripts/build-ios-app.sh",
"scripts/lib/xcode.sh",
"scripts/run-ios-device-release-build.sh",
"scripts/check-ios-private-api.py",
"scripts/check-ios-sdk-deltas.py",
"scripts/run-ios-ui-tests.sh",
"scripts/run-ios-native-tests.sh",
"scripts/ios/**",
"scripts/hellocodenameone/**",
"!docs/**"
]
},
"catalyst": {
"pull_request": [
".github/workflows/scripts-mac-catalyst.yml",
".github/workflows/_build-ios-port.yml",
"scripts/setup-workspace.sh",
"scripts/build-ios-port.sh",
"scripts/build-mac-catalyst-app.sh",
"scripts/run-mac-catalyst-ui-tests.sh",
"scripts/hellocodenameone/**",
"scripts/ios/tests/**",
"scripts/mac-catalyst/**",
"scripts/templates/**",
"!scripts/templates/**/*.md",
"scripts/common/java/**",
"scripts/lib/cn1ss.sh",
"scripts/lib/xcode.sh",
"CodenameOne/src/**",
"!CodenameOne/src/**/*.md",
"Ports/iOSPort/**",
"!Ports/iOSPort/**/*.md",
"native-themes/ios-modern/**",
"!native-themes/ios-modern/**/*.md",
"vm/**",
"!vm/**/*.md",
"tests/**",
"!tests/**/*.md",
"maven/**",
"!maven/cn1-ai-*/**",
"!maven/cn1-admob/**",
"!maven/cn1-applovin/**",
"!maven/cn1-unity-levelplay/**",
"!maven/core-unittests/**",
"!docs/**",
"vm/backend/demo/cn1ss/**"
],
"push": [
".github/workflows/scripts-mac-catalyst.yml",
".github/workflows/_build-ios-port.yml",
"scripts/setup-workspace.sh",
"scripts/build-ios-port.sh",
"scripts/build-mac-catalyst-app.sh",
"scripts/run-mac-catalyst-ui-tests.sh",
"scripts/hellocodenameone/**",
"scripts/ios/tests/**",
"scripts/mac-catalyst/**",
"scripts/templates/**",
"!scripts/templates/**/*.md",
"scripts/common/java/**",
"scripts/lib/cn1ss.sh",
"scripts/lib/xcode.sh",
"CodenameOne/src/**",
"Ports/iOSPort/**",
"native-themes/ios-modern/**",
"vm/**",
"tests/**",
"maven/**",
"!maven/cn1-ai-*/**",
"!maven/cn1-admob/**",
"!maven/cn1-applovin/**",
"!maven/cn1-unity-levelplay/**",
"!maven/core-unittests/**",
"vm/backend/demo/cn1ss/**"
]
}
}
20 changes: 5 additions & 15 deletions .github/workflows/_build-ios-port.yml
Original file line number Diff line number Diff line change
@@ -1,17 +1,10 @@
name: _Build iOS port (reusable)

# Reusable workflow that runs scripts/setup-workspace.sh + scripts/build-ios-port.sh
# once per workflow run, populating shared caches that downstream test jobs (in
# scripts-ios.yml, scripts-ios-native.yml, ios-packaging.yml) restore via the
# same cache keys.
#
# A separate "cn1-built" cache is keyed on the CN1 source hash with no restore-
# keys (exact match only). On hit, the entire setup-workspace + build-ios-port
# sequence is skipped — the iOS port artifact in ~/.m2/repository/com/codenameone
# is already correct for the current source state.
#
# This cache is shared across all three iOS workflows on the same branch, so
# whichever workflow runs first populates it and the others skip the rebuild.
# The iOS coordinator calls this once and shares its artifact with UI,
# notification, packaging and Catalyst consumers in the SAME run. Standalone
# diagnostic dispatches can still call it themselves. Caches only accelerate
# later runs; an exact artifact remains the required handoff, even on a cold
# cache or when entries are evicted while consumers wait for a runner.

on:
workflow_call:
Expand All @@ -26,9 +19,6 @@ jobs:
timeout-minutes: 60
outputs:
cn1_built_cache_key: ${{ steps.cn1_built_key.outputs.key }}
concurrency:
group: mac-ios-port-${{ github.workflow }}-${{ github.ref_name }}
cancel-in-progress: true
steps:
- uses: actions/checkout@v6

Expand Down
3 changes: 0 additions & 3 deletions .github/workflows/_build-mac-port.yml
Original file line number Diff line number Diff line change
Expand Up @@ -27,9 +27,6 @@ jobs:
timeout-minutes: 60
outputs:
cn1_built_mac_cache_key: ${{ steps.cn1_built_mac_key.outputs.key }}
concurrency:
group: mac-port-${{ github.workflow }}-${{ github.ref_name }}
cancel-in-progress: true
steps:
- uses: actions/checkout@v6

Expand Down
Loading
Loading