Skip to content

Commit

Permalink
CI: Backport GitHub Actions from 3.x branch
Browse files Browse the repository at this point in the history
Ensures that we have a configuration that is currently usable.

Some changes for the `3.2` branch as it's unmaintained:
- No cache
- No artifacts upload
- Uses clang-format 10
- No JavaScript linting
  • Loading branch information
akien-mga committed Apr 19, 2021
1 parent 31d0f8a commit 67b2f3e
Show file tree
Hide file tree
Showing 9 changed files with 321 additions and 239 deletions.
215 changes: 170 additions & 45 deletions .github/CODEOWNERS
Original file line number Diff line number Diff line change
Expand Up @@ -2,48 +2,173 @@
# Each line is a file pattern followed by one or more owners.
# Owners can be @users, @org/teams or emails

/doc/ @godotengine/documentation
doc_classes/* @godotengine/documentation

# Rendering
/drivers/gl_context/ @reduz
/drivers/gles2/ @reduz
/drivers/gles3/ @reduz

# Audio
/drivers/alsa/ @marcelofg55
/drivers/alsamidi/ @marcelofg55
/drivers/coreaudio/ @marcelofg55
/drivers/coremidi/ @marcelofg55
/drivers/pulseaudio/ @marcelofg55
/drivers/wasapi/ @marcelofg55
/drivers/winmidi/ @marcelofg55
/drivers/xaudio2/ @marcelofg55

/drivers/unix/ @hpvb
/drivers/windows/ @hpvb

/editor/icons/ @djrm

/misc/ @akien-mga

/modules/bullet/ @AndreaCatania
/modules/csg/ @BastiaanOlij
/modules/enet/ @godotengine/network
/modules/gdnative/*arvr/ @BastiaanOlij
/modules/gdscript/ @vnen @bojidar-bg
/modules/mbedtls/ @godotengine/network
/modules/mobile_vr/ @BastiaanOlij
/modules/mono/ @neikeq
/modules/opensimplex/ @JFonS
/modules/regex/ @LeeZH
/modules/upnp/ @godotengine/network
/modules/websocket/ @godotengine/network

/platform/javascript/ @eska014
/platform/uwp/ @vnen

/server/physics*/ @reduz @AndreaCatania
/server/visual*/ @reduz

/thirdparty/ @akien-mga
# Buildsystem

.* @godotengine/buildsystem
.github/ @godotengine/buildsystem
*.py @godotengine/buildsystem
SConstruct @godotengine/buildsystem
SCsub @godotengine/buildsystem

# Core

/core/ @godotengine/core
/core/crypto/ @godotengine/network
/core/input*.* @godotengine/input

# Doc

/doc/ @godotengine/documentation
doc_classes/* @godotengine/documentation

# Drivers

## Audio
/drivers/alsa/ @godotengine/audio
/drivers/alsamidi/ @godotengine/audio
/drivers/coreaudio/ @godotengine/audio
/drivers/coremidi/ @godotengine/audio
/drivers/pulseaudio/ @godotengine/audio
/drivers/wasapi/ @godotengine/audio
/drivers/winmidi/ @godotengine/audio
/drivers/xaudio2/ @godotengine/audio

## Rendering
/drivers/dummy/ @godotengine/rendering
/drivers/gl_context/ @godotengine/rendering
/drivers/gles2/ @godotengine/rendering
/drivers/gles3/ @godotengine/rendering
/drivers/gles_common/ @godotengine/rendering

## OS
/drivers/unix/ @godotengine/_platforms
/drivers/windows/ @godotengine/windows

## Misc
/drivers/png/ @godotengine/import

# Editor

/editor/*debugger* @godotengine/debugger
/editor/icons/ @godotengine/usability
/editor/import/ @godotengine/import
/editor/plugins/*2d_*.* @godotengine/2d-editor
/editor/plugins/script_*.* @godotengine/script-editor
/editor/plugins/*shader*.* @godotengine/shaders
/editor/code_editor.* @godotengine/script-editor
/editor/*dock*.* @godotengine/docks

# Main

/main/ @godotengine/core
/main/tests/ @godotengine/tests

# Misc

/misc/ @godotengine/buildsystem

# Modules

## Audio (+ video)
/modules/minimp3/ @godotengine/audio
/modules/ogg/ @godotengine/audio
/modules/opus/ @godotengine/audio
/modules/stb_vorbis/ @godotengine/audio
/modules/theora/ @godotengine/audio
/modules/vorbis/ @godotengine/audio
/modules/webm/ @godotengine/audio

## Import
/modules/basis_universal/ @godotengine/import
/modules/bmp/ @godotengine/import
/modules/cvtt/ @godotengine/import
/modules/dds/ @godotengine/import
/modules/etc/ @godotengine/import
/modules/fbx/ @godotengine/import
/modules/gltf/ @godotengine/import
/modules/hdr/ @godotengine/import
/modules/jpg/ @godotengine/import
/modules/pvr/ @godotengine/import
/modules/squish/ @godotengine/import
/modules/svg/ @godotengine/import
/modules/tga/ @godotengine/import
/modules/tinyexr/ @godotengine/import
/modules/webp/ @godotengine/import

## Network
/modules/enet/ @godotengine/network
/modules/mbedtls/ @godotengine/network
/modules/upnp/ @godotengine/network
/modules/webrtc/ @godotengine/network
/modules/websocket/ @godotengine/network

## Rendering
/modules/denoise/ @godotengine/rendering
/modules/glslang/ @godotengine/rendering
/modules/lightmapper_cpu/ @godotengine/rendering
/modules/meshoptimizer/ @godotengine/rendering
/modules/raycast/ @godotengine/rendering
/modules/vhacd/ @godotengine/rendering
/modules/xatlas_unwrap/ @godotengine/rendering

## Scripting
/modules/gdnative/ @godotengine/gdnative
/modules/gdscript/ @godotengine/gdscript
/modules/jsonrpc/ @godotengine/gdscript
/modules/mono/ @godotengine/mono
/modules/visual_script/ @godotengine/visualscript

## Text
/modules/freetype/ @godotengine/buildsystem
/modules/gdnative/text/ @godotengine/gui-nodes
/modules/text_server_adv/ @godotengine/gui-nodes
/modules/text_server_fb/ @godotengine/gui-nodes

## XR
/modules/camera/ @godotengine/xr
/modules/gdnative/arvr/ @godotengine/xr
/modules/mobile_vr/ @godotengine/xr
/modules/webxr/ @godotengine/xr

## Misc
/modules/bullet/ @godotengine/physics
/modules/csg/ @godotengine/3d-nodes
/modules/gridmap/ @godotengine/3d-nodes
/modules/opensimplex/ @godotengine/3d-nodes
/modules/recast/ @godotengine/navigation
/modules/regex/ @godotengine/core

# Platform

/platform/android/ @godotengine/android
/platform/iphone/ @godotengine/ios
/platform/javascript/ @godotengine/html5
/platform/x11/ @godotengine/linux-bsd
/platform/osx/ @godotengine/macos
/platform/uwp/ @godotengine/uwp
/platform/windows/ @godotengine/windows

# Scene

/scene/2d/ @godotengine/2d-nodes
/scene/3d/ @godotengine/3d-nodes
/scene/animation/ @godotengine/animation
/scene/audio/ @godotengine/audio
/scene/debugger/ @godotengine/debugger
/scene/gui/ @godotengine/gui-nodes
/scene/main/ @godotengine/core
/scene/resources/default_theme/ @godotengine/gui-nodes
/scene/resources/font.* @godotengine/gui-nodes
/scene/resources/visual_shader*.* @godotengine/shaders

# Servers

/servers/arvr* @godotengine/xr
/servers/audio* @godotengine/audio
/servers/camera* @godotengine/xr
/servers/physics* @godotengine/physics
/servers/visual* @godotengine/rendering

# Thirdparty

/thirdparty/ @godotengine/buildsystem
47 changes: 17 additions & 30 deletions .github/workflows/android_builds.yml
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
name: 🤖 Android Builds
on: [push, pull_request]

# Global Cache Settings
# Global Settings
env:
GODOT_BASE_BRANCH: 3.2
SCONS_CACHE_LIMIT: 4096
SCONSFLAGS: platform=android verbose=yes warnings=all werror=yes debug_symbols=no --jobs=2
ANDROID_NDK_VERSION: 21.1.6352462

jobs:
android-template:
Expand All @@ -18,35 +18,18 @@ jobs:
# 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
# Install all packages (except scons)
- name: Configure dependencies
run: |
sudo apt-get install openjdk-8-jdk
echo "::set-env name=JAVA_HOME::usr/lib/jvm/java-8-openjdk-amd64"
- name: Set up Java 8
uses: actions/setup-java@v1
with:
java-version: 8

- name: Install Android SDK and NDK
- name: Install Android NDK r21
run: |
echo "::set-env name=PATH::/usr/lib/jvm/java-8-openjdk-amd64/jre/bin:${PATH}"
java -version
echo "::set-env name=ANDROID_HOME::$(pwd)/godot-dev/build-tools/android-sdk"
echo "::set-env name=ANDROID_NDK_ROOT::$(pwd)/godot-dev/build-tools/android-ndk"
misc/ci/android-tools-linux.sh
source ~/.bashrc
# 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}}
sudo ${ANDROID_HOME}/tools/bin/sdkmanager --install 'ndk;${{env.ANDROID_NDK_VERSION}}'
# Use python 3.x release (works cross platform)
- name: Set up Python 3.x
Expand All @@ -57,7 +40,6 @@ jobs:
# Optional - x64 or x86 architecture, defaults to x64
architecture: 'x64'

# You can test your matrix by printing the current Python version
- name: Configuring Python packages
run: |
python -c "import sys; print(sys.version)"
Expand All @@ -67,6 +49,11 @@ jobs:
- name: Compilation
env:
SCONS_CACHE: ${{github.workspace}}/.scons_cache/
ANDROID_NDK_ROOT: /usr/local/lib/android/sdk/ndk/${{env.ANDROID_NDK_VERSION}}/
run: |
scons -j2 verbose=yes warnings=all werror=yes platform=android target=release tools=no
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/
22 changes: 4 additions & 18 deletions .github/workflows/ios_builds.yml
Original file line number Diff line number Diff line change
@@ -1,10 +1,9 @@
name: 🍏 iOS Builds
on: [push, pull_request]

# Global Cache Settings
# Global Settings
env:
GODOT_BASE_BRANCH: 3.2
SCONS_CACHE_LIMIT: 4096
SCONSFLAGS: platform=iphone verbose=yes warnings=all werror=no debug_symbols=no --jobs=2

jobs:
ios-template:
Expand All @@ -14,18 +13,6 @@ jobs:
steps:
- uses: actions/checkout@v2

# Upload cache on completion and check it out now
- name: Load .scons_cache directory
id: ios-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
Expand All @@ -44,7 +31,6 @@ jobs:
scons --version
- name: Compilation
env:
SCONS_CACHE: ${{github.workspace}}/.scons_cache/
run: |
scons -j2 verbose=yes warnings=all werror=no platform=iphone target=release tools=no
scons target=release tools=no
ls -l bin/
25 changes: 6 additions & 19 deletions .github/workflows/javascript_builds.yml
Original file line number Diff line number Diff line change
@@ -1,10 +1,9 @@
name: 🌐 JavaScript Builds
on: [push, pull_request]

# Global Cache Settings
# Global Settings
env:
GODOT_BASE_BRANCH: 3.2
SCONS_CACHE_LIMIT: 4096
SCONSFLAGS: platform=javascript verbose=yes warnings=all werror=yes debug_symbols=no --jobs=2
EM_VERSION: 1.39.20
EM_CACHE_FOLDER: 'emsdk-cache'

Expand All @@ -19,21 +18,10 @@ jobs:
# 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
# Upload cache on completion and check it out now
- name: Load .scons_cache directory
id: javascript-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}}
# Additional cache for Emscripten generated system libraries
- name: Load Emscripten cache
id: javascript-template-emscripten-cache
Expand All @@ -60,7 +48,7 @@ jobs:
scons --version
- name: Set up Emscripten latest
uses: mymindstorm/setup-emsdk@v6
uses: mymindstorm/setup-emsdk@v7
with:
version: ${{env.EM_VERSION}}
actions-cache-folder: ${{env.EM_CACHE_FOLDER}}
Expand All @@ -70,7 +58,6 @@ jobs:
emcc -v
- name: Compilation
env:
SCONS_CACHE: ${{github.workspace}}/.scons_cache/
run: |
scons -j2 verbose=yes warnings=all werror=yes platform=javascript target=release tools=no use_closure_compiler=yes
scons target=release tools=no use_closure_compiler=yes
ls -l bin/
Loading

0 comments on commit 67b2f3e

Please sign in to comment.