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
39 changes: 35 additions & 4 deletions .github/workflows/scripts-android.yml
Original file line number Diff line number Diff line change
Expand Up @@ -4,13 +4,44 @@ name: Test Android build scripts
'on':
pull_request:
paths:
- 'scripts/**'
- 'BUILDING.md'
- '.github/workflows/scripts-android.yml'
- 'scripts/setup-workspace.sh'
- 'scripts/build-android-port.sh'
- 'scripts/build-android-app.sh'
- 'scripts/run-android-instrumentation-tests.sh'
- 'scripts/android/lib/**/*.py'
- 'scripts/android/tests/**/*.py'
- 'scripts/android/screenshots/**'
- '!scripts/android/screenshots/**/*.md'
- 'scripts/templates/**'
- '!scripts/templates/**/*.md'
- 'CodenameOne/src/**'
- '!CodenameOne/src/**/*.md'
- 'Ports/Android/**'
- '!Ports/Android/**/*.md'
- 'tests/**'
- '!tests/**/*.md'
push:
branches:
- master
paths-ignore:
- '**/*.md'
paths:
- '.github/workflows/scripts-android.yml'
- 'scripts/setup-workspace.sh'
- 'scripts/build-android-port.sh'
- 'scripts/build-android-app.sh'
- 'scripts/run-android-instrumentation-tests.sh'
- 'scripts/android/lib/**/*.py'
- 'scripts/android/tests/**/*.py'
- 'scripts/android/screenshots/**'
- '!scripts/android/screenshots/**/*.md'
- 'scripts/templates/**'
- '!scripts/templates/**/*.md'
- 'CodenameOne/src/**'
- '!CodenameOne/src/**/*.md'
- 'Ports/Android/**'
- '!Ports/Android/**/*.md'
- 'tests/**'
- '!tests/**/*.md'

jobs:
build-android:
Expand Down
32 changes: 28 additions & 4 deletions .github/workflows/scripts-ios.yml
Original file line number Diff line number Diff line change
Expand Up @@ -3,13 +3,37 @@ name: Test iOS build scripts
on:
pull_request:
paths:
- 'scripts/**'
- '.github/workflows/scripts-ios.yml'
- 'BUILDING.md'
- 'scripts/setup-workspace.sh'
- 'scripts/build-ios-port.sh'
- 'scripts/build-ios-app.sh'
- 'scripts/templates/**'
- '!scripts/templates/**/*.md'
- 'CodenameOne/src/**'
- '!CodenameOne/src/**/*.md'
- 'Ports/iOSPort/**'
- '!Ports/iOSPort/**/*.md'
- 'vm/**'
- '!vm/**/*.md'
- 'tests/**'
- '!tests/**/*.md'
push:
branches: [ master ]
paths-ignore:
- '**/*.md'
paths:
- '.github/workflows/scripts-ios.yml'
- 'scripts/setup-workspace.sh'
- 'scripts/build-ios-port.sh'
- 'scripts/build-ios-app.sh'
- 'scripts/templates/**'
- '!scripts/templates/**/*.md'
- 'CodenameOne/src/**'
- '!CodenameOne/src/**/*.md'
- 'Ports/iOSPort/**'
- '!Ports/iOSPort/**/*.md'
- 'vm/**'
- '!vm/**/*.md'
- 'tests/**'
- '!tests/**/*.md'

jobs:
build-ios:
Expand Down
32 changes: 32 additions & 0 deletions scripts/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
# Codename One build scripts

This directory houses helper scripts used by local contributors and the CI
workflows to build and validate Codename One ports.

## Top-level shell scripts

- `setup-workspace.sh` – provisions the JDKs, Maven installation, and other
tooling required to build Codename One locally or inside CI.
- `build-android-port.sh` / `build-ios-port.sh` – compile the Android and iOS
native ports from source.
- `build-android-app.sh` / `build-ios-app.sh` – generate a "Hello Codename One"
sample application and build it against the freshly compiled port.
- `run-android-instrumentation-tests.sh` – launches the Android emulator,
executes instrumentation tests, and prepares screenshot reports for pull
requests.

## Subdirectories

- `android/` – Python helpers, baseline screenshots, and utilities that power
the Android instrumentation test workflow.
- `android/lib/` – library-style Python modules shared across Android
automation scripts.
- `android/tests/` – command-line tools used by CI for processing screenshots
and posting feedback to pull requests.
- `android/screenshots/` – reference images used when comparing emulator
output.
- `templates/` – code templates consumed by the sample app builders.

These scripts are designed so that shell logic focuses on orchestration, while
Python modules encapsulate the heavier data processing steps. This separation
keeps the entry points easy to follow and simplifies maintenance.
Loading
Loading