-
Notifications
You must be signed in to change notification settings - Fork 1
/
.gitlab-ci.yml
85 lines (74 loc) · 3.06 KB
/
.gitlab-ci.yml
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
image: myood/godot-ci-android-export:godot-3.2.2
#https://github.com/myood/godot-ci-android-export
#https://github.com/myood/godot-ci-android-export/blob/master/.gitlab-ci.yml
#https://hub.docker.com/r/myood/godot-ci-android-export/tags
variables:
APP_NAME: "FreecoiL"
before_script:
- export DOCKER_HOME=$PWD
- pwd
- apt-get update
- apt-get install -y python3 gradle
- mkdir -p ~/.config/godot/projects
- mkdir -p ~/.godot
- mkdir -p ~/.local/share/godot
- mkdir -p ~/.cache
- cp $DOCKER_HOME/.gitlab/ci_scripts/editor_settings-3.tres /root/.config/godot/editor_settings-3.tres
stages:
- unit_test
- integration_test
- multiplayer_unit_test
- multiplayer_integration_test
- build_for_android
unit_tests:
stage: unit_test
variables:
DEBIAN_FRONTEND: noninteractive
script:
- python3 $DOCKER_HOME/godot/tests/run_unit_tests.py
integration_tests:
stage: integration_test
script:
- python3 $DOCKER_HOME/godot/tests/run_integration_tests.py
multiplayer_unit_tests:
stage: multiplayer_integration_test
script:
- python3 $DOCKER_HOME/godot/tests/run_multiplayer_unit_tests.py
multiplayer_integration_tests:
stage: multiplayer_integration_test
script:
- python3 $DOCKER_HOME/godot/tests/run_multiplayer_integration_tests.py
build_apk:
stage: build_for_android
script:
# Fix Export Presets for the gitlab CI.
- cp $DOCKER_HOME/.gitlab/ci_scripts/export_presets.cfg $DOCKER_HOME/godot/export_presets.cfg
# This is simply (semi-manual :-)) double-check if editor settings are OK for debug export
- grep android /root/.config/godot/editor_settings-3.tres
- ls -l /usr/lib/jvm/java-8-openjdk-amd64/bin/jarsigner
- ls -l /root/android-sdk/
- ls -l /root/android-sdk/debug.keystore
- ls -l /root/android-sdk/cmdline-tools/
- ls -l /root/android-sdk/cmdline-tools/latest/
- ls -l /root/.local/share/godot/templates/
#- ls -l /root/.local/share/godot/templates/3.2.2
# Quick check if basic settings are properly set
- grep -F "export/android/jarsigner =" ~/.config/godot/editor_settings-3.tres | grep '".*"' -o | xargs ls
- grep -F "export/android/debug_keystore =" ~/.config/godot/editor_settings-3.tres | grep '".*"' -o | xargs ls
- grep -F "export/android/adb =" ~/.config/godot/editor_settings-3.tres | grep '".*"' -o | xargs ls
- grep -F "export/android/custom_build_sdk_path =" ~/.config/godot/editor_settings-3.tres | grep '".*"' -o | xargs ls
# Add the right build tools
- set +o pipefail
- yes | ~/android-sdk/cmdline-tools/latest/bin/sdkmanager "build-tools;29.0.3" > /dev/null
- set -o pipefail
- ls -l /root/android-sdk/cmdline-tools/latest/build-tools
# Prevent android build gradlew from failing due to not executable
- chmod +x android/build/gradlew
# Export APP_VERSION
- export APP_VERSION=$(python3 .gitlab/ci_scripts/extract_version.py)
- godot --path godot --export-debug "Android" /builds/FeralBytes/FreecoiL/${APP_NAME}-Ver:${APP_VERSION}-debug.apk
artifacts:
name: ${APP_NAME}-debug
paths:
- ./*.apk
expire_in: 1 week