We often hit "Too Many Requests" errors when uploading the cache with `actions/cache` because there's a limit of 10 GB every 5 minutes, and we can easily go over it when we amend or merge several PRs in a short timespan. This will make the CI artifacts less useful for debugging crashes but there's no real way around this.
80 lines
2.6 KiB
YAML
80 lines
2.6 KiB
YAML
name: 🤖 Android Builds
|
|
on: [push, pull_request]
|
|
|
|
# Global Settings
|
|
env:
|
|
GODOT_BASE_BRANCH: master
|
|
SCONSFLAGS: platform=android verbose=yes warnings=extra werror=yes debug_symbols=no --jobs=2 module_text_server_fb_enabled=yes
|
|
SCONS_CACHE_LIMIT: 4096
|
|
ANDROID_NDK_VERSION: 21.1.6352462
|
|
|
|
jobs:
|
|
android-template:
|
|
runs-on: "ubuntu-20.04"
|
|
|
|
name: Template (target=release, tools=no)
|
|
|
|
steps:
|
|
- uses: actions/checkout@v2
|
|
|
|
# Azure repositories are not reliable, we need to prevent azure giving us packages.
|
|
- name: Make apt sources.list use the default Ubuntu repositories
|
|
run: |
|
|
sudo rm -f /etc/apt/sources.list.d/*
|
|
sudo cp -f misc/ci/sources.list /etc/apt/sources.list
|
|
sudo apt-get update
|
|
|
|
- name: Set up Java 8
|
|
uses: actions/setup-java@v1
|
|
with:
|
|
java-version: 8
|
|
|
|
- name: Install Android NDK r21
|
|
run: |
|
|
sudo ${ANDROID_HOME}/tools/bin/sdkmanager --install 'ndk;${{env.ANDROID_NDK_VERSION}}'
|
|
|
|
# Upload cache on completion and check it out now
|
|
- name: Load .scons_cache directory
|
|
id: android-template-cache
|
|
uses: actions/cache@v2
|
|
with:
|
|
path: ${{github.workspace}}/.scons_cache/
|
|
key: ${{github.job}}-${{env.GODOT_BASE_BRANCH}}-${{github.ref}}-${{github.sha}}
|
|
restore-keys: |
|
|
${{github.job}}-${{env.GODOT_BASE_BRANCH}}-${{github.ref}}-${{github.sha}}
|
|
${{github.job}}-${{env.GODOT_BASE_BRANCH}}-${{github.ref}}
|
|
${{github.job}}-${{env.GODOT_BASE_BRANCH}}
|
|
|
|
# Use python 3.x release (works cross platform)
|
|
- name: Set up Python 3.x
|
|
uses: actions/setup-python@v2
|
|
with:
|
|
# Semantic version range syntax or exact version of a Python version
|
|
python-version: '3.x'
|
|
# Optional - x64 or x86 architecture, defaults to x64
|
|
architecture: 'x64'
|
|
|
|
- name: Configuring Python packages
|
|
run: |
|
|
python -c "import sys; print(sys.version)"
|
|
python -m pip install scons
|
|
python --version
|
|
scons --version
|
|
|
|
- name: Compilation
|
|
env:
|
|
SCONS_CACHE: ${{github.workspace}}/.scons_cache/
|
|
ANDROID_NDK_ROOT: /usr/local/lib/android/sdk/ndk/${{env.ANDROID_NDK_VERSION}}/
|
|
run: |
|
|
scons target=release tools=no android_arch=armv7
|
|
scons target=release tools=no android_arch=arm64v8
|
|
cd platform/android/java
|
|
./gradlew generateGodotTemplates
|
|
cd ../../..
|
|
ls -l bin/
|
|
|
|
- uses: actions/upload-artifact@v2
|
|
with:
|
|
name: ${{ github.job }}
|
|
path: bin/*
|
|
retention-days: 14
|