Skip to content

update

update #25

Workflow file for this run

name: 🤖 Android Builds
on:
push:
branches: [ master, github_actions ]
pull_request:
branches: [ master ]
# Global Cache Settings
env:
GODOT_BASE_BRANCH: "4.0"
SCONS_CACHE_LIMIT: 4096
jobs:
linux-editor:
runs-on: "ubuntu-20.04"
name: Ubuntu
steps:
- name: Set up Java 17
uses: actions/setup-java@v3
with:
distribution: temurin
java-version: 17
# Clone Godot
- uses: actions/checkout@v2
with:
repository: godotengine/godot
# Clone our module under the correct directory
- uses: actions/checkout@v2
with:
path: modules/rwkv
# init submodules in the rwkv module
- name: Init submodules
run: |
cd modules/rwkv
git submodule update --init --recursive
cd ../..
- name: Prepare Vulkan SDK
uses: humbletim/[email protected]
with:
vulkan-query-version: 1.3.204.0
vulkan-components: Vulkan-Headers, Vulkan-Loader
vulkan-use-cache: true
# Setup custom buildroot so we may use an old but compatible GLIBC version, while keeping recent toolchain.
# This allows to make production builds that are compatible with older Linux distros.
# TODO Enhancement: cache buildroot so future runs can use it?
# TODO Enhancement: make buildroot setup a self-contained step. There are bits of setup elsewhere.
# Currently I also setup `PATH` in the Compilation step because modifications
# do not persist between steps (?). I also placed this step after checkout because the checkout step changes
# the working directory for all following steps.
# TODO Bug: pkg-config wrongly points to lib instead of lib64 for arch-dependent header.
# Using `sed` to patch it as a workaround.
# See https://github.com/godotengine/buildroot/issues/6
- name: Setup buildroot
run: |
wget https://download.tuxfamily.org/godotengine/toolchains/linux/x86_64-godot-linux-gnu_sdk-buildroot.tar.bz2
tar -xjf x86_64-godot-linux-gnu_sdk-buildroot.tar.bz2
cd x86_64-godot-linux-gnu_sdk-buildroot
sed -i x86_64-godot-linux-gnu/sysroot/usr/lib/pkgconfig/dbus-1.pc -e "s@/lib@/lib64@g"
./relocate-sdk.sh
cd ..
# [Already provided by the custom buildroot]
# 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
# [Already provided by the custom buildroot]
# Install all packages (except scons)
# - name: Configure dependencies
# run: |
# sudo apt-get install build-essential pkg-config libx11-dev libxcursor-dev \
# libxinerama-dev libgl1-mesa-dev libglu-dev libasound2-dev libpulse-dev libudev-dev libxi-dev libxrandr-dev yasm
# Upload cache on completion and check it out now
- name: Load .scons_cache directory
id: android-cache
uses: actions/cache@v2
with:
path: ${{github.workspace}}/.scons_cache/32/
key: ${{github.job}}-${{env.GODOT_BASE_BRANCH}}-${{github.ref}}-${{github.sha}}-32
restore-keys: |
${{github.job}}-${{env.GODOT_BASE_BRANCH}}-${{github.ref}}-${{github.sha}}-32
${{github.job}}-${{env.GODOT_BASE_BRANCH}}-${{github.ref}}
${{github.job}}-${{env.GODOT_BASE_BRANCH}}
- name: Load .scons_cache directory
id: android-cache-64
uses: actions/cache@v2
with:
path: ${{github.workspace}}/.scons_cache/64/
key: ${{github.job}}-${{env.GODOT_BASE_BRANCH}}-${{github.ref}}-${{github.sha}}-64
restore-keys: |
${{github.job}}-${{env.GODOT_BASE_BRANCH}}-${{github.ref}}-${{github.sha}}-64
${{github.job}}-${{env.GODOT_BASE_BRANCH}}-${{github.ref}}
${{github.job}}-${{env.GODOT_BASE_BRANCH}}
# [Already provided by the custom buildroot]
# Use python 3.x release (works cross platform; best to keep self contained in it's own step)
# - 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'
# [Already provided by the custom buildroot]
# Setup scons, print python version and scons version info, so if anything is broken it won't run the build.
# - name: Configuring Python packages
# run: |
# python -c "import sys; print(sys.version)"
# python -m pip install scons
# python --version
# scons --version
# We should always be explicit with our flags usage here since it's gonna be sure to always set those flags
- name: Compilation64
env:
SCONS_CACHE: ${{github.workspace}}/.scons_cache/64/
run: |
PATH=${GITHUB_WORKSPACE}/x86_64-godot-linux-gnu_sdk-buildroot/bin:$PATH
scons arch=arm64 platform=android target=template_release
- name: Compilation32
env:
SCONS_CACHE: ${{github.workspace}}/.scons_cache/32/
run: |
PATH=${GITHUB_WORKSPACE}/x86_64-godot-linux-gnu_sdk-buildroot/bin:$PATH
scons arch=arm32 platform=android target=template_release
- name: Generate Godot templates
run: |
PATH=${GITHUB_WORKSPACE}/x86_64-godot-linux-gnu_sdk-buildroot/bin:$PATH
scons --version
cd platform/android/java
./gradlew generateGodotTemplates
cd ../../..
ls -l bin/
# Make build available
- uses: actions/upload-artifact@v2
with:
name: build
path: bin/