-
Notifications
You must be signed in to change notification settings - Fork 436
123 lines (120 loc) · 4.32 KB
/
scripts-android.yml
File metadata and controls
123 lines (120 loc) · 4.32 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
---
name: Test Android build scripts
'on':
pull_request:
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/generate-android-coverage-report.sh'
- 'scripts/android/lib/**/*.java'
- 'scripts/android/tests/**/*.java'
- 'scripts/device-runner-app/**/*.java'
- 'scripts/hellocodenameone/**'
- 'scripts/android/screenshots/**'
- '!scripts/android/screenshots/**/*.md'
- 'scripts/templates/**'
- '!scripts/templates/**/*.md'
- 'CodenameOne/src/**'
- '!CodenameOne/src/**/*.md'
- 'Ports/Android/**'
- '!Ports/Android/**/*.md'
- 'maven/**'
- '!maven/core-unittests/**'
- 'tests/**'
- '!tests/**/*.md'
- '!docs/**'
push:
branches:
- master
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/generate-android-coverage-report.sh'
- 'scripts/android/lib/**/*.java'
- 'scripts/android/tests/**/*.java'
- 'scripts/device-runner-app/**/*.java'
- 'scripts/hellocodenameone/**'
- 'scripts/android/screenshots/**'
- '!scripts/android/screenshots/**/*.md'
- 'scripts/templates/**'
- '!scripts/templates/**/*.md'
- 'CodenameOne/src/**'
- '!CodenameOne/src/**/*.md'
- 'Ports/Android/**'
- '!Ports/Android/**/*.md'
- 'maven/**'
- '!maven/core-unittests/**'
- 'tests/**'
- '!tests/**/*.md'
- '!docs/**'
# The token in secrets.CN1SS_GH_TOKEN was generated on
# Oct 16th 2025. If in Oct 2026 builds start failing, it
# means the token needs to be regenerated:
# 1. Go to https://github.com/settings/tokens → “Developer settings” → “Personal access tokens”.
# 2. Choose Fine-grained token (recommended).
# 3. Grant:
# • Repository access → select Codename One
# • Permissions:
# • Contents → Read and Write
# • Pull requests → Read and Write
# • Issues → Read and Write
# 4. Copy the generated token
# 5. Go to https://github.com/codenameone/CodenameOne/settings/secrets/actions
# and edit the CN1SS_GH_TOKEN to use the new token
jobs:
build-android:
permissions:
contents: read
pull-requests: write
issues: write
runs-on: ubuntu-latest
env:
GITHUB_TOKEN: ${{ secrets.CN1SS_GH_TOKEN }}
GH_TOKEN: ${{ secrets.CN1SS_GH_TOKEN }}
steps:
- uses: actions/checkout@v4
- name: Setup workspace
run: ./scripts/setup-workspace.sh -q -DskipTests
- name: Build Android port
run: ./scripts/build-android-port.sh -q -DskipTests
- name: Build Hello Codename One Android app
id: build-android-app
run: ./scripts/build-android-app.sh -q -DskipTests
- name: Enable KVM for Android emulator
run: |
echo 'KERNEL=="kvm", GROUP="kvm", MODE="0666", OPTIONS+="static_node=kvm"' | sudo tee /etc/udev/rules.d/99-kvm4all.rules
sudo udevadm control --reload-rules
sudo udevadm trigger --name-match=kvm
- name: Run Android instrumentation tests
uses: reactivecircus/android-emulator-runner@v2
with:
api-level: 31
arch: x86_64
target: google_apis
script: |
./scripts/run-android-instrumentation-tests.sh "${{ steps.build-android-app.outputs.gradle_project_dir }}"
./scripts/generate-android-coverage-report.sh "${{ steps.build-android-app.outputs.gradle_project_dir }}"
- name: Upload emulator screenshot
if: always() # still collect it if tests fail
uses: actions/upload-artifact@v4
with:
name: emulator-screenshot
path: artifacts/*.png
if-no-files-found: warn
retention-days: 14
compression-level: 6
- name: Upload Android Jacoco coverage report
if: always()
uses: actions/upload-artifact@v4
with:
name: android-jacoco-coverage
path: artifacts/android-coverage-report
if-no-files-found: warn
retention-days: 14
compression-level: 6