CI: Backport GitHub Actions from 3.x branch

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
This commit is contained in:
Rémi Verschelde 2021-04-19 14:26:54 +02:00
parent 31d0f8ad8d
commit 67b2f3ed25
No known key found for this signature in database
GPG Key ID: C3336907360768E1
9 changed files with 313 additions and 231 deletions

197
.github/CODEOWNERS vendored
View File

@ -2,48 +2,173 @@
# Each line is a file pattern followed by one or more owners. # Each line is a file pattern followed by one or more owners.
# Owners can be @users, @org/teams or emails # Owners can be @users, @org/teams or emails
/doc/ @godotengine/documentation # Buildsystem
doc_classes/* @godotengine/documentation
# Rendering .* @godotengine/buildsystem
/drivers/gl_context/ @reduz .github/ @godotengine/buildsystem
/drivers/gles2/ @reduz *.py @godotengine/buildsystem
/drivers/gles3/ @reduz SConstruct @godotengine/buildsystem
SCsub @godotengine/buildsystem
# Audio # Core
/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 /core/ @godotengine/core
/drivers/windows/ @hpvb /core/crypto/ @godotengine/network
/core/input*.* @godotengine/input
/editor/icons/ @djrm # Doc
/misc/ @akien-mga /doc/ @godotengine/documentation
doc_classes/* @godotengine/documentation
/modules/bullet/ @AndreaCatania # Drivers
/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 ## Audio
/platform/uwp/ @vnen /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
/server/physics*/ @reduz @AndreaCatania ## Rendering
/server/visual*/ @reduz /drivers/dummy/ @godotengine/rendering
/drivers/gl_context/ @godotengine/rendering
/drivers/gles2/ @godotengine/rendering
/drivers/gles3/ @godotengine/rendering
/drivers/gles_common/ @godotengine/rendering
/thirdparty/ @akien-mga ## 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

View File

@ -1,10 +1,10 @@
name: 🤖 Android Builds name: 🤖 Android Builds
on: [push, pull_request] on: [push, pull_request]
# Global Cache Settings # Global Settings
env: env:
GODOT_BASE_BRANCH: 3.2 SCONSFLAGS: platform=android verbose=yes warnings=all werror=yes debug_symbols=no --jobs=2
SCONS_CACHE_LIMIT: 4096 ANDROID_NDK_VERSION: 21.1.6352462
jobs: jobs:
android-template: android-template:
@ -18,35 +18,18 @@ jobs:
# Azure repositories are not reliable, we need to prevent azure giving us packages. # Azure repositories are not reliable, we need to prevent azure giving us packages.
- name: Make apt sources.list use the default Ubuntu repositories - name: Make apt sources.list use the default Ubuntu repositories
run: | run: |
sudo rm -f /etc/apt/sources.list.d/*
sudo cp -f misc/ci/sources.list /etc/apt/sources.list sudo cp -f misc/ci/sources.list /etc/apt/sources.list
sudo apt-get update sudo apt-get update
# Install all packages (except scons) - name: Set up Java 8
- name: Configure dependencies uses: actions/setup-java@v1
run: |
sudo apt-get install openjdk-8-jdk
echo "::set-env name=JAVA_HOME::usr/lib/jvm/java-8-openjdk-amd64"
- name: Install Android SDK and NDK
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: with:
path: ${{github.workspace}}/.scons_cache/ java-version: 8
key: ${{github.job}}-${{env.GODOT_BASE_BRANCH}}-${{github.ref}}-${{github.sha}}
restore-keys: | - name: Install Android NDK r21
${{github.job}}-${{env.GODOT_BASE_BRANCH}}-${{github.ref}}-${{github.sha}} run: |
${{github.job}}-${{env.GODOT_BASE_BRANCH}}-${{github.ref}} sudo ${ANDROID_HOME}/tools/bin/sdkmanager --install 'ndk;${{env.ANDROID_NDK_VERSION}}'
${{github.job}}-${{env.GODOT_BASE_BRANCH}}
# Use python 3.x release (works cross platform) # Use python 3.x release (works cross platform)
- name: Set up Python 3.x - name: Set up Python 3.x
@ -57,7 +40,6 @@ jobs:
# Optional - x64 or x86 architecture, defaults to x64 # Optional - x64 or x86 architecture, defaults to x64
architecture: 'x64' architecture: 'x64'
# You can test your matrix by printing the current Python version
- name: Configuring Python packages - name: Configuring Python packages
run: | run: |
python -c "import sys; print(sys.version)" python -c "import sys; print(sys.version)"
@ -67,6 +49,11 @@ jobs:
- name: Compilation - name: Compilation
env: env:
SCONS_CACHE: ${{github.workspace}}/.scons_cache/ ANDROID_NDK_ROOT: /usr/local/lib/android/sdk/ndk/${{env.ANDROID_NDK_VERSION}}/
run: | 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/

View File

@ -1,10 +1,9 @@
name: 🍏 iOS Builds name: 🍏 iOS Builds
on: [push, pull_request] on: [push, pull_request]
# Global Cache Settings # Global Settings
env: env:
GODOT_BASE_BRANCH: 3.2 SCONSFLAGS: platform=iphone verbose=yes warnings=all werror=no debug_symbols=no --jobs=2
SCONS_CACHE_LIMIT: 4096
jobs: jobs:
ios-template: ios-template:
@ -14,18 +13,6 @@ jobs:
steps: steps:
- uses: actions/checkout@v2 - 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) # Use python 3.x release (works cross platform)
- name: Set up Python 3.x - name: Set up Python 3.x
uses: actions/setup-python@v2 uses: actions/setup-python@v2
@ -44,7 +31,6 @@ jobs:
scons --version scons --version
- name: Compilation - name: Compilation
env:
SCONS_CACHE: ${{github.workspace}}/.scons_cache/
run: | run: |
scons -j2 verbose=yes warnings=all werror=no platform=iphone target=release tools=no scons target=release tools=no
ls -l bin/

View File

@ -1,10 +1,9 @@
name: 🌐 JavaScript Builds name: 🌐 JavaScript Builds
on: [push, pull_request] on: [push, pull_request]
# Global Cache Settings # Global Settings
env: env:
GODOT_BASE_BRANCH: 3.2 SCONSFLAGS: platform=javascript verbose=yes warnings=all werror=yes debug_symbols=no --jobs=2
SCONS_CACHE_LIMIT: 4096
EM_VERSION: 1.39.20 EM_VERSION: 1.39.20
EM_CACHE_FOLDER: 'emsdk-cache' EM_CACHE_FOLDER: 'emsdk-cache'
@ -19,21 +18,10 @@ jobs:
# Azure repositories are not reliable, we need to prevent azure giving us packages. # Azure repositories are not reliable, we need to prevent azure giving us packages.
- name: Make apt sources.list use the default Ubuntu repositories - name: Make apt sources.list use the default Ubuntu repositories
run: | run: |
sudo rm -f /etc/apt/sources.list.d/*
sudo cp -f misc/ci/sources.list /etc/apt/sources.list sudo cp -f misc/ci/sources.list /etc/apt/sources.list
sudo apt-get update 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 # Additional cache for Emscripten generated system libraries
- name: Load Emscripten cache - name: Load Emscripten cache
id: javascript-template-emscripten-cache id: javascript-template-emscripten-cache
@ -60,7 +48,7 @@ jobs:
scons --version scons --version
- name: Set up Emscripten latest - name: Set up Emscripten latest
uses: mymindstorm/setup-emsdk@v6 uses: mymindstorm/setup-emsdk@v7
with: with:
version: ${{env.EM_VERSION}} version: ${{env.EM_VERSION}}
actions-cache-folder: ${{env.EM_CACHE_FOLDER}} actions-cache-folder: ${{env.EM_CACHE_FOLDER}}
@ -70,7 +58,6 @@ jobs:
emcc -v emcc -v
- name: Compilation - name: Compilation
env:
SCONS_CACHE: ${{github.workspace}}/.scons_cache/
run: | 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/

View File

@ -1,13 +1,12 @@
name: 🐧 Linux Builds name: 🐧 Linux Builds
on: [push, pull_request] on: [push, pull_request]
# Global Cache Settings # Global Settings
env: env:
GODOT_BASE_BRANCH: 3.2 SCONSFLAGS: platform=linuxbsd verbose=yes warnings=all werror=yes debug_symbols=no --jobs=2
SCONS_CACHE_LIMIT: 4096
jobs: jobs:
linux-editor: linux-editor-mono:
runs-on: "ubuntu-20.04" runs-on: "ubuntu-20.04"
name: Editor w/ Mono (target=release_debug, tools=yes) name: Editor w/ Mono (target=release_debug, tools=yes)
@ -17,27 +16,16 @@ jobs:
# Azure repositories are not reliable, we need to prevent azure giving us packages. # Azure repositories are not reliable, we need to prevent azure giving us packages.
- name: Make apt sources.list use the default Ubuntu repositories - name: Make apt sources.list use the default Ubuntu repositories
run: | run: |
sudo rm -f /etc/apt/sources.list.d/*
sudo cp -f misc/ci/sources.list /etc/apt/sources.list sudo cp -f misc/ci/sources.list /etc/apt/sources.list
sudo apt-get update sudo apt-get update
# Install all packages (except scons) # Install all packages (except scons)
- name: Configure dependencies - name: Configure dependencies
run: | run: |
sudo apt-get install build-essential pkg-config libx11-dev libxcursor-dev \ sudo apt-get install build-essential pkg-config libx11-dev libxcursor-dev xvfb \
libxinerama-dev libgl1-mesa-dev libglu-dev libasound2-dev libpulse-dev libudev-dev libxi-dev libxrandr-dev yasm 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: linux-editor-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; best to keep self contained in it's own step) # Use python 3.x release (works cross platform; best to keep self contained in it's own step)
- name: Set up Python 3.x - name: Set up Python 3.x
uses: actions/setup-python@v2 uses: actions/setup-python@v2
@ -57,12 +45,13 @@ jobs:
# We should always be explicit with our flags usage here since it's gonna be sure to always set those flags # We should always be explicit with our flags usage here since it's gonna be sure to always set those flags
- name: Compilation - name: Compilation
env:
SCONS_CACHE: ${{github.workspace}}/.scons_cache/
run: | run: |
scons -j2 verbose=yes warnings=all werror=yes platform=x11 tools=yes target=release_debug module_mono_enabled=yes mono_glue=no scons tools=yes target=release_debug module_mono_enabled=yes mono_glue=no
xvfb-run ./bin/godot.x11.opt.tools.64.mono --generate-mono-glue modules/mono/glue || true
scons tools=yes target=release_debug module_mono_enabled=yes mono_glue=yes
ls -l bin/
linux-template: linux-template-mono:
runs-on: "ubuntu-20.04" runs-on: "ubuntu-20.04"
name: Template w/ Mono (target=release, tools=no) name: Template w/ Mono (target=release, tools=no)
@ -72,6 +61,7 @@ jobs:
# Azure repositories are not reliable, we need to prevent azure giving us packages. # Azure repositories are not reliable, we need to prevent azure giving us packages.
- name: Make apt sources.list use the default Ubuntu repositories - name: Make apt sources.list use the default Ubuntu repositories
run: | run: |
sudo rm -f /etc/apt/sources.list.d/*
sudo cp -f misc/ci/sources.list /etc/apt/sources.list sudo cp -f misc/ci/sources.list /etc/apt/sources.list
sudo apt-get update sudo apt-get update
@ -81,18 +71,6 @@ jobs:
sudo apt-get install build-essential pkg-config libx11-dev libxcursor-dev \ 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 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: linux-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) # Use python 3.x release (works cross platform)
- name: Set up Python 3.x - name: Set up Python 3.x
uses: actions/setup-python@v2 uses: actions/setup-python@v2
@ -111,7 +89,6 @@ jobs:
scons --version scons --version
- name: Compilation - name: Compilation
env:
SCONS_CACHE: ${{github.workspace}}/.scons_cache/
run: | run: |
scons -j2 verbose=yes warnings=all werror=yes platform=x11 target=release tools=no module_mono_enabled=yes mono_glue=no scons target=release tools=no module_mono_enabled=yes mono_glue=no
ls -l bin/

View File

@ -1,10 +1,9 @@
name: 🍎 macOS Builds name: 🍎 macOS Builds
on: [push, pull_request] on: [push, pull_request]
# Global Cache Settings # Global Settings
env: env:
GODOT_BASE_BRANCH: 3.2 SCONSFLAGS: platform=osx verbose=yes warnings=all werror=yes debug_symbols=no --jobs=2
SCONS_CACHE_LIMIT: 4096
jobs: jobs:
macos-editor: macos-editor:
@ -15,18 +14,6 @@ jobs:
steps: steps:
- uses: actions/checkout@v2 - uses: actions/checkout@v2
# Upload cache on completion and check it out now
- name: Load .scons_cache directory
id: macos-editor-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; best to keep self contained in it's own step) # Use python 3.x release (works cross platform; best to keep self contained in it's own step)
- name: Set up Python 3.x - name: Set up Python 3.x
uses: actions/setup-python@v2 uses: actions/setup-python@v2
@ -46,10 +33,9 @@ jobs:
# We should always be explicit with our flags usage here since it's gonna be sure to always set those flags # We should always be explicit with our flags usage here since it's gonna be sure to always set those flags
- name: Compilation - name: Compilation
env:
SCONS_CACHE: ${{github.workspace}}/.scons_cache/
run: | run: |
scons -j2 verbose=yes warnings=all werror=yes platform=osx tools=yes target=release_debug scons tools=yes target=release_debug
ls -l bin/
macos-template: macos-template:
runs-on: "macos-latest" runs-on: "macos-latest"
@ -58,18 +44,6 @@ jobs:
steps: steps:
- uses: actions/checkout@v2 - uses: actions/checkout@v2
# Upload cache on completion and check it out now
- name: Load .scons_cache directory
id: macos-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) # Use python 3.x release (works cross platform)
- name: Set up Python 3.x - name: Set up Python 3.x
uses: actions/setup-python@v2 uses: actions/setup-python@v2
@ -88,7 +62,6 @@ jobs:
scons --version scons --version
- name: Compilation - name: Compilation
env:
SCONS_CACHE: ${{github.workspace}}/.scons_cache/
run: | run: |
scons -j2 verbose=yes warnings=all werror=yes platform=osx target=release tools=no scons target=release tools=no
ls -l bin/

88
.github/workflows/server_builds.yml vendored Normal file
View File

@ -0,0 +1,88 @@
name: ☁ Server Builds
on: [push, pull_request]
# Global Settings
env:
SCONSFLAGS: platform=server verbose=yes warnings=all werror=yes debug_symbols=no --jobs=2
jobs:
linux-editor:
runs-on: "ubuntu-20.04"
name: Linux Headless w/ Mono (target=release_debug, tools=yes)
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 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 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
# 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'
# 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: Compilation
run: |
scons -j2 verbose=yes warnings=all werror=yes platform=server tools=yes target=release_debug module_mono_enabled=yes mono_glue=no
linux-server:
runs-on: "ubuntu-20.04"
name: Linux Server w/ Mono (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 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 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
# 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'
# You can test your matrix by printing the current Python version
- name: Configuring Python packages
run: |
python -c "import sys; print(sys.version)"
python -m pip install scons
python --version
scons --version
- name: Compilation
run: |
scons -j2 target=release tools=no module_mono_enabled=yes mono_glue=no

View File

@ -9,11 +9,19 @@ jobs:
- name: Checkout - name: Checkout
uses: actions/checkout@v2 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: Install dependencies - name: Install dependencies
run: | run: |
sudo apt-get update -qq sudo apt-get install -qq dos2unix recode clang-format-10
sudo apt-get install -qq dos2unix recode clang-format sudo update-alternatives --remove-all clang-format
sudo pip3 install black pygments sudo update-alternatives --install /usr/bin/clang-format clang-format /usr/bin/clang-format-10 100
sudo pip3 install black==20.8b1 pygments
- name: File formatting checks (file_format.sh) - name: File formatting checks (file_format.sh)
run: | run: |

View File

@ -1,12 +1,9 @@
name: 🏁 Windows Builds name: 🏁 Windows Builds
on: [push, pull_request] on: [push, pull_request]
# Global Cache Settings # Global Settings
# SCONS_CACHE for windows must be set in the build environment
env: env:
GODOT_BASE_BRANCH: 3.2 SCONSFLAGS: platform=windows verbose=yes warnings=all werror=yes debug_symbols=no --jobs=2
SCONS_CACHE_MSVC_CONFIG: true
SCONS_CACHE_LIMIT: 4096
jobs: jobs:
windows-editor: windows-editor:
@ -19,19 +16,6 @@ jobs:
steps: steps:
- uses: actions/checkout@v2 - uses: actions/checkout@v2
# Upload cache on completion and check it out now
# Editing this is pretty dangerous for Windows since it can break and needs to be properly tested with a fresh cache.
- name: Load .scons_cache directory
id: windows-editor-cache
uses: RevoluPowered/cache@v2.1
with:
path: /.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; best to keep self contained in it's own step) # Use python 3.x release (works cross platform; best to keep self contained in it's own step)
- name: Set up Python 3.x - name: Set up Python 3.x
uses: actions/setup-python@v2 uses: actions/setup-python@v2
@ -51,19 +35,9 @@ jobs:
# We should always be explicit with our flags usage here since it's gonna be sure to always set those flags # We should always be explicit with our flags usage here since it's gonna be sure to always set those flags
- name: Compilation - name: Compilation
env:
SCONS_CACHE: /.scons_cache/
run: | run: |
scons -j2 verbose=yes warnings=all werror=yes platform=windows tools=yes target=release_debug scons tools=yes target=release_debug
ls -l bin/
# Build Product Upload (tested and working)
# sorry this is disabled until github can give us some more space as we would hit our limit very quickly
# tested this code and it works fine so just enable it to get them back
# - name: publishing godot windows-editor
# uses: actions/upload-artifact@v1
# with:
# name: windows-editor (x64)
# path: bin/godot.windows.opt.tools.64.exe
windows-template: windows-template:
runs-on: "windows-latest" runs-on: "windows-latest"
@ -72,19 +46,6 @@ jobs:
steps: steps:
- uses: actions/checkout@v2 - uses: actions/checkout@v2
# Upload cache on completion and check it out now
# Editing this is pretty dangerous for Windows since it can break and needs to be properly tested with a fresh cache.
- name: Load .scons_cache directory
id: windows-template-cache
uses: RevoluPowered/cache@v2.1
with:
path: /.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) # Use python 3.x release (works cross platform)
- name: Set up Python 3.x - name: Set up Python 3.x
uses: actions/setup-python@v2 uses: actions/setup-python@v2
@ -103,16 +64,6 @@ jobs:
scons --version scons --version
- name: Compilation - name: Compilation
env:
SCONS_CACHE: /.scons_cache/
run: | run: |
scons -j2 verbose=yes warnings=all werror=yes platform=windows target=release tools=no scons target=release tools=no
ls -l bin/
# Build Product Upload (tested and working)
# sorry this is disabled until github can give us some more space as we would hit our limit very quickly
# tested this code and it works fine so just enable it to get them back
# - name: publishing godot windows-template
# uses: actions/upload-artifact@v1
# with:
# name: windows-template (x64)
# path: bin/godot.windows.opt.64.exe