Skip to content

Commit e619430

Browse files
committed
WIP android CI setup
1 parent a89e7d0 commit e619430

File tree

3 files changed

+316
-1
lines changed

3 files changed

+316
-1
lines changed

.github/workflows/ci.yml

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,11 @@ jobs:
3535
needs: build-extension
3636
uses: ./.github/workflows/unit_tests.yml
3737

38+
test-android:
39+
name: 🧪 Android tests
40+
needs: build-extension
41+
uses: ./.github/workflows/test_android.yml
42+
3843
package:
3944
name: 📦 Package
4045
needs: build-extension
@@ -49,7 +54,7 @@ jobs:
4954
# See issue: https://github.com/getsentry/sentry-godot/issues/41
5055
cleanup:
5156
name: 🗑️ Cleanup
52-
needs: [package, unit-tests, static-checks]
57+
needs: [package, unit-tests, test-android, static-checks]
5358
runs-on: ubuntu-latest
5459
steps:
5560
- name: Delete sentry-godot-gdextension artifact

.github/workflows/test_android.yml

Lines changed: 90 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,90 @@
1+
name: 🧪 Android tests
2+
3+
on:
4+
workflow_call:
5+
6+
permissions:
7+
contents: read
8+
9+
jobs:
10+
test-android:
11+
name: Export project for Android
12+
runs-on: ubuntu-latest
13+
steps:
14+
- name: Checkout repo
15+
uses: actions/checkout@v4
16+
with:
17+
submodules: false # don't initialize submodules automatically
18+
19+
- name: Prepare testing
20+
uses: ./.github/actions/prepare-testing
21+
with:
22+
arch: x86_64
23+
24+
# TODO: move to prepare testing
25+
- name: Download Android template
26+
shell: bash
27+
env:
28+
GODOT_VERSION: 4.5.1-stable
29+
run: |
30+
archive_file=Godot_v${GODOT_VERSION}_export_templates.tpz
31+
url=https://github.com/godotengine/godot-builds/releases/download/${GODOT_VERSION}/${archive_file}
32+
curl -L -o templates.zip "${url}"
33+
unzip templates.zip
34+
rm templates.zip
35+
mv templates/android_source.zip exports/android_source.zip
36+
rm -rf templates/
37+
38+
# TODO: need to cache it
39+
40+
mkdir android_source/
41+
cd android_source/
42+
unzip ../exports/android_source.zip
43+
cd ..
44+
45+
mkdir project/android/
46+
mv android_source project/android/build
47+
48+
ls -lR project/android/
49+
50+
- name: Export project
51+
shell: bash
52+
timeout-minutes: 5
53+
env:
54+
SENTRY_TEST: 1
55+
SENTRY_TEST_INCLUDE: "res://test/suites/"
56+
run: |
57+
cp exports/export_presets.cfg project/export_presets.cfg
58+
mkdir -p exports/android/
59+
${GODOT} --path project/ --headless --export-debug "Android CI" ${GITHUB_WORKSPACE}/exports/android.apk
60+
61+
ls -lR exports/
62+
63+
# - name: Run Android Tests
64+
# uses: reactivecircus/android-emulator-runner@d94c3fbe4fe6a29e4a5ba47c12fb47677c73656b # [email protected]
65+
# timeout-minutes: 30
66+
# with:
67+
# api-level: 30
68+
# target: "google_apis"
69+
# channel: "stable"
70+
# force-avd-creation: true
71+
# disable-animations: true
72+
# disable-spellchecker: true
73+
# emulator-options: >
74+
# -no-window
75+
# -no-snapshot-save
76+
# -gpu swiftshader_indirect
77+
# -noaudio
78+
# -no-boot-anim
79+
# -camera-back none
80+
# -camera-front none
81+
# -timezone US/Pacific
82+
# arch: x86_64
83+
# script: |
84+
# adb wait-for-device
85+
# adb shell input keyevent 82
86+
# adb devices -l
87+
# adb install exports/android.apk
88+
# adb shell am start -n io.sentry.godot.project/com.godot.game.GodotApp \
89+
# --es env SENTRY_TEST=1 \
90+
# --es env SENTRY_TEST_INCLUDE="res://test/suites/"

exports/export_presets.cfg

Lines changed: 220 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,220 @@
1+
[preset.0]
2+
3+
name="Android CI"
4+
platform="Android"
5+
runnable=false
6+
advanced_options=true
7+
dedicated_server=false
8+
custom_features=""
9+
export_filter="all_resources"
10+
include_filter=""
11+
exclude_filter=""
12+
export_path=""
13+
patches=PackedStringArray()
14+
encryption_include_filters=""
15+
encryption_exclude_filters=""
16+
seed=0
17+
encrypt_pck=false
18+
encrypt_directory=false
19+
script_export_mode=0
20+
21+
[preset.0.options]
22+
23+
custom_template/debug=""
24+
custom_template/release=""
25+
gradle_build/use_gradle_build=true
26+
gradle_build/gradle_build_directory=""
27+
gradle_build/android_source_template="../exports/android_source.zip"
28+
gradle_build/compress_native_libraries=false
29+
gradle_build/export_format=0
30+
gradle_build/min_sdk=""
31+
gradle_build/target_sdk=""
32+
gradle_build/custom_theme_attributes={}
33+
architectures/armeabi-v7a=false
34+
architectures/arm64-v8a=true
35+
architectures/x86=false
36+
architectures/x86_64=false
37+
version/code=1
38+
version/name=""
39+
package/unique_name="io.sentry.godot.project"
40+
package/name=""
41+
package/signed=true
42+
package/app_category=2
43+
package/retain_data_on_uninstall=false
44+
package/exclude_from_recents=false
45+
package/show_in_android_tv=false
46+
package/show_in_app_library=true
47+
package/show_as_launcher_app=false
48+
launcher_icons/main_192x192=""
49+
launcher_icons/adaptive_foreground_432x432=""
50+
launcher_icons/adaptive_background_432x432=""
51+
launcher_icons/adaptive_monochrome_432x432=""
52+
graphics/opengl_debug=false
53+
shader_baker/enabled=false
54+
xr_features/xr_mode=0
55+
gesture/swipe_to_dismiss=false
56+
screen/immersive_mode=true
57+
screen/edge_to_edge=false
58+
screen/support_small=true
59+
screen/support_normal=true
60+
screen/support_large=true
61+
screen/support_xlarge=true
62+
screen/background_color=Color(0, 0, 0, 1)
63+
user_data_backup/allow=false
64+
command_line/extra_args=""
65+
apk_expansion/enable=false
66+
apk_expansion/SALT=""
67+
apk_expansion/public_key=""
68+
permissions/custom_permissions=PackedStringArray()
69+
permissions/access_checkin_properties=false
70+
permissions/access_coarse_location=false
71+
permissions/access_fine_location=false
72+
permissions/access_location_extra_commands=false
73+
permissions/access_media_location=false
74+
permissions/access_mock_location=false
75+
permissions/access_network_state=false
76+
permissions/access_surface_flinger=false
77+
permissions/access_wifi_state=false
78+
permissions/account_manager=false
79+
permissions/add_voicemail=false
80+
permissions/authenticate_accounts=false
81+
permissions/battery_stats=false
82+
permissions/bind_accessibility_service=false
83+
permissions/bind_appwidget=false
84+
permissions/bind_device_admin=false
85+
permissions/bind_input_method=false
86+
permissions/bind_nfc_service=false
87+
permissions/bind_notification_listener_service=false
88+
permissions/bind_print_service=false
89+
permissions/bind_remoteviews=false
90+
permissions/bind_text_service=false
91+
permissions/bind_vpn_service=false
92+
permissions/bind_wallpaper=false
93+
permissions/bluetooth=false
94+
permissions/bluetooth_admin=false
95+
permissions/bluetooth_privileged=false
96+
permissions/brick=false
97+
permissions/broadcast_package_removed=false
98+
permissions/broadcast_sms=false
99+
permissions/broadcast_sticky=false
100+
permissions/broadcast_wap_push=false
101+
permissions/call_phone=false
102+
permissions/call_privileged=false
103+
permissions/camera=false
104+
permissions/capture_audio_output=false
105+
permissions/capture_secure_video_output=false
106+
permissions/capture_video_output=false
107+
permissions/change_component_enabled_state=false
108+
permissions/change_configuration=false
109+
permissions/change_network_state=false
110+
permissions/change_wifi_multicast_state=false
111+
permissions/change_wifi_state=false
112+
permissions/clear_app_cache=false
113+
permissions/clear_app_user_data=false
114+
permissions/control_location_updates=false
115+
permissions/delete_cache_files=false
116+
permissions/delete_packages=false
117+
permissions/device_power=false
118+
permissions/diagnostic=false
119+
permissions/disable_keyguard=false
120+
permissions/dump=false
121+
permissions/expand_status_bar=false
122+
permissions/factory_test=false
123+
permissions/flashlight=false
124+
permissions/force_back=false
125+
permissions/get_accounts=false
126+
permissions/get_package_size=false
127+
permissions/get_tasks=false
128+
permissions/get_top_activity_info=false
129+
permissions/global_search=false
130+
permissions/hardware_test=false
131+
permissions/inject_events=false
132+
permissions/install_location_provider=false
133+
permissions/install_packages=false
134+
permissions/install_shortcut=false
135+
permissions/internal_system_window=false
136+
permissions/internet=false
137+
permissions/kill_background_processes=false
138+
permissions/location_hardware=false
139+
permissions/manage_accounts=false
140+
permissions/manage_app_tokens=false
141+
permissions/manage_documents=false
142+
permissions/manage_external_storage=false
143+
permissions/master_clear=false
144+
permissions/media_content_control=false
145+
permissions/modify_audio_settings=false
146+
permissions/modify_phone_state=false
147+
permissions/mount_format_filesystems=false
148+
permissions/mount_unmount_filesystems=false
149+
permissions/nfc=false
150+
permissions/persistent_activity=false
151+
permissions/post_notifications=false
152+
permissions/process_outgoing_calls=false
153+
permissions/read_calendar=false
154+
permissions/read_call_log=false
155+
permissions/read_contacts=false
156+
permissions/read_external_storage=false
157+
permissions/read_frame_buffer=false
158+
permissions/read_history_bookmarks=false
159+
permissions/read_input_state=false
160+
permissions/read_logs=false
161+
permissions/read_media_audio=false
162+
permissions/read_media_images=false
163+
permissions/read_media_video=false
164+
permissions/read_media_visual_user_selected=false
165+
permissions/read_phone_state=false
166+
permissions/read_profile=false
167+
permissions/read_sms=false
168+
permissions/read_social_stream=false
169+
permissions/read_sync_settings=false
170+
permissions/read_sync_stats=false
171+
permissions/read_user_dictionary=false
172+
permissions/reboot=false
173+
permissions/receive_boot_completed=false
174+
permissions/receive_mms=false
175+
permissions/receive_sms=false
176+
permissions/receive_wap_push=false
177+
permissions/record_audio=false
178+
permissions/reorder_tasks=false
179+
permissions/restart_packages=false
180+
permissions/send_respond_via_message=false
181+
permissions/send_sms=false
182+
permissions/set_activity_watcher=false
183+
permissions/set_alarm=false
184+
permissions/set_always_finish=false
185+
permissions/set_animation_scale=false
186+
permissions/set_debug_app=false
187+
permissions/set_orientation=false
188+
permissions/set_pointer_speed=false
189+
permissions/set_preferred_applications=false
190+
permissions/set_process_limit=false
191+
permissions/set_time=false
192+
permissions/set_time_zone=false
193+
permissions/set_wallpaper=false
194+
permissions/set_wallpaper_hints=false
195+
permissions/signal_persistent_processes=false
196+
permissions/status_bar=false
197+
permissions/subscribed_feeds_read=false
198+
permissions/subscribed_feeds_write=false
199+
permissions/system_alert_window=false
200+
permissions/transmit_ir=false
201+
permissions/uninstall_shortcut=false
202+
permissions/update_device_stats=false
203+
permissions/use_credentials=false
204+
permissions/use_sip=false
205+
permissions/vibrate=false
206+
permissions/wake_lock=false
207+
permissions/write_apn_settings=false
208+
permissions/write_calendar=false
209+
permissions/write_call_log=false
210+
permissions/write_contacts=false
211+
permissions/write_external_storage=false
212+
permissions/write_gservices=false
213+
permissions/write_history_bookmarks=false
214+
permissions/write_profile=false
215+
permissions/write_secure_settings=false
216+
permissions/write_settings=false
217+
permissions/write_sms=false
218+
permissions/write_social_stream=false
219+
permissions/write_sync_settings=false
220+
permissions/write_user_dictionary=false

0 commit comments

Comments
 (0)