This commit is contained in:
Spartan322
2025-05-22 14:01:21 -04:00
441 changed files with 14189 additions and 7714 deletions

View File

@@ -4,7 +4,11 @@ on:
# Global Settings
env:
SCONSFLAGS: verbose=yes warnings=extra werror=yes debug_symbols=no module_text_server_fb_enabled=yes strict_checks=yes
SCONS_FLAGS: >-
dev_mode=yes
module_text_server_fb_enabled=yes
tests=no
swappy=yes
jobs:
build-android:
@@ -18,20 +22,19 @@ jobs:
- name: Editor (target=editor)
cache-name: android-editor
target: editor
tests: false
sconsflags: arch=arm64 production=yes swappy=yes
scons-flags: >-
arch=arm64
production=yes
- name: Template arm32 (target=template_release, arch=arm32)
cache-name: android-template-arm32
target: template_release
tests: false
sconsflags: arch=arm32 swappy=yes
scons-flags: arch=arm32
- name: Template arm64 (target=template_release, arch=arm64)
cache-name: android-template-arm64
target: template_release
tests: false
sconsflags: arch=arm64 swappy=yes
scons-flags: arch=arm64
steps:
- name: Checkout
@@ -68,10 +71,9 @@ jobs:
- name: Compilation
uses: ./.github/actions/godot-build
with:
sconsflags: ${{ env.SCONSFLAGS }} ${{ matrix.sconsflags }}
scons-flags: ${{ env.SCONS_FLAGS }} ${{ matrix.scons-flags }}
platform: android
target: ${{ matrix.target }}
tests: ${{ matrix.tests }}
- name: Save Godot build cache
uses: ./.github/actions/godot-cache-save

View File

@@ -4,7 +4,11 @@ on:
# Global Settings
env:
SCONSFLAGS: verbose=yes warnings=extra werror=yes debug_symbols=no module_text_server_fb_enabled=yes strict_checks=yes
SCONS_FLAGS: >-
dev_mode=yes
module_text_server_fb_enabled=yes
tests=no
debug_symbols=no
jobs:
ios-template:
@@ -28,10 +32,9 @@ jobs:
- name: Compilation (arm64)
uses: ./.github/actions/godot-build
with:
sconsflags: ${{ env.SCONSFLAGS }}
scons-flags: ${{ env.SCONS_FLAGS }}
platform: ios
target: template_release
tests: false
- name: Save Godot build cache
uses: ./.github/actions/godot-cache-save

View File

@@ -4,8 +4,11 @@ on:
# Global Settings
env:
SCONS_FLAGS: >-
dev_mode=yes
module_text_server_fb_enabled=yes
"accesskit_sdk_path=${{ github.workspace }}/accesskit-c-0.15.1/"
GODOT_CPP_BRANCH: 4.4
SCONSFLAGS: verbose=yes warnings=extra werror=yes module_text_server_fb_enabled=yes strict_checks=yes "accesskit_sdk_path=${{ github.workspace }}/accesskit-c-0.15.1/"
DOTNET_NOLOGO: true
DOTNET_CLI_TELEMETRY_OPTOUT: true
TSAN_OPTIONS: suppressions=${{ github.workspace }}/misc/error_suppressions/tsan.txt
@@ -24,10 +27,9 @@ jobs:
- name: Editor w/ Mono (target=editor)
cache-name: linux-editor-mono
target: editor
sconsflags: module_mono_enabled=yes
scons-flags: module_mono_enabled=yes
bin: ./bin/redot.linuxbsd.editor.x86_64.mono
build-mono: true
tests: false # Disabled due freeze caused by mix Mono build and CI
doc-test: true
proj-conv: true
api-compat: true
@@ -37,64 +39,72 @@ jobs:
# Validate redot-cpp compatibility on one arbitrary editor build.
redot-cpp: true
- name: Editor with doubles and GCC sanitizers (target=editor, tests=yes, dev_build=yes, scu_build=yes, precision=double, use_asan=yes, use_ubsan=yes, linker=mold)
- name: Editor with doubles and GCC sanitizers (target=editor, dev_build=yes, scu_build=yes, precision=double, use_asan=yes, use_ubsan=yes, linker=mold)
cache-name: linux-editor-double-sanitizers
target: editor
# Debug symbols disabled as they're huge on this build and we hit the 14 GB limit for runners.
sconsflags: dev_build=yes scu_build=yes debug_symbols=no precision=double use_asan=yes use_ubsan=yes linker=mold
scons-flags: >-
dev_build=yes
scu_build=yes
debug_symbols=no
precision=double
use_asan=yes
use_ubsan=yes
linker=mold
bin: ./bin/redot.linuxbsd.editor.dev.double.x86_64.san
build-mono: false
tests: true
proj-test: true
# Skip 2GiB artifact speeding up action.
artifact: false
- name: Editor with clang sanitizers (target=editor, tests=yes, dev_build=yes, use_asan=yes, use_ubsan=yes, use_llvm=yes, linker=lld)
- name: Editor with clang sanitizers (target=editor, dev_build=yes, use_asan=yes, use_ubsan=yes, use_llvm=yes, linker=lld)
cache-name: linux-editor-llvm-sanitizers
target: editor
sconsflags: dev_build=yes use_asan=yes use_ubsan=yes use_llvm=yes linker=lld
scons-flags: >-
dev_build=yes
use_asan=yes
use_ubsan=yes
use_llvm=yes
linker=lld
bin: ./bin/redot.linuxbsd.editor.dev.x86_64.llvm.san
build-mono: false
tests: true
# Skip 2GiB artifact speeding up action.
artifact: false
# Test our oldest supported SCons/Python versions on one arbitrary editor build.
legacy-scons: true
- name: Editor with ThreadSanitizer (target=editor, tests=yes, dev_build=yes, use_tsan=yes, use_llvm=yes, linker=lld)
- name: Editor with ThreadSanitizer (target=editor, dev_build=yes, use_tsan=yes, use_llvm=yes, linker=lld)
cache-name: linux-editor-thread-sanitizer
target: editor
tests: true
sconsflags: dev_build=yes use_tsan=yes use_llvm=yes linker=lld
scons-flags: >-
dev_build=yes
use_tsan=yes
use_llvm=yes
linker=lld
bin: ./bin/redot.linuxbsd.editor.dev.x86_64.llvm.san
build-mono: false
# Skip 2GiB artifact speeding up action.
artifact: false
- name: Template w/ Mono, release (target=template_release, tests=yes)
- name: Template w/ Mono, release (target=template_release)
cache-name: linux-template-mono
target: template_release
sconsflags: module_mono_enabled=yes
scons-flags: module_mono_enabled=yes
bin: ./bin/redot.linuxbsd.template_release.x86_64.mono
build-mono: false
tests: true
artifact: true
- name: Template w/ Mono, debug (target=template_debug, tests=yes)
- name: Template w/ Mono, debug (target=template_debug)
cache-name: linux-template-mono-debug
target: template_debug
sconsflags: module_mono_enabled=yes
scons-flags: module_mono_enabled=yes
bin: ./bin/redot.linuxbsd.template_debug.x86_64.mono
build-mono: false
tests: true
artifact: true
- name: Minimal template (target=template_release, tests=yes, everything disabled)
- name: Minimal template (target=template_release, everything disabled)
cache-name: linux-template-minimal
target: template_release
sconsflags: modules_enabled_by_default=no disable_3d=yes disable_advanced_gui=yes disable_physics_2d=yes disable_physics_3d=yes deprecated=no minizip=no
scons-flags: >-
modules_enabled_by_default=no
module_text_server_fb_enabled=no
disable_3d=yes
disable_advanced_gui=yes
disable_physics_2d=yes
disable_physics_3d=yes
deprecated=no
minizip=no
brotli=no
bin: ./bin/redot.linuxbsd.template_release.x86_64
tests: true
artifact: true
steps:
@@ -168,10 +178,9 @@ jobs:
- name: Compilation
uses: ./.github/actions/godot-build
with:
sconsflags: ${{ env.SCONSFLAGS }} ${{ matrix.sconsflags }}
scons-flags: ${{ env.SCONS_FLAGS }} ${{ matrix.scons-flags }}
platform: linuxbsd
target: ${{ matrix.target }}
tests: ${{ matrix.tests }}
- name: Compilation (godot-cpp)
uses: ./.github/actions/godot-cpp-build
@@ -219,7 +228,6 @@ jobs:
name: ${{ matrix.cache-name }}
- name: Unit tests
if: matrix.tests
run: |
${{ matrix.bin }} --version
${{ matrix.bin }} --help

View File

@@ -4,7 +4,10 @@ on:
# Global Settings
env:
SCONSFLAGS: verbose=yes warnings=extra werror=yes module_text_server_fb_enabled=yes strict_checks=yes "accesskit_sdk_path=${{ github.workspace }}/accesskit-c-0.15.1/"
SCONS_FLAGS: >-
dev_mode=yes
module_text_server_fb_enabled=yes
"accesskit_sdk_path=${{ github.workspace }}/accesskit-c-0.15.1/"
jobs:
build-macos:
@@ -15,17 +18,15 @@ jobs:
fail-fast: false
matrix:
include:
- name: Editor (target=editor, tests=yes)
- name: Editor (target=editor)
cache-name: macos-editor
target: editor
tests: true
bin: ./bin/redot.macos.editor.universal
- name: Template (target=template_release, tests=yes)
- name: Template (target=template_release)
cache-name: macos-template
target: template_release
tests: true
sconsflags: debug_symbols=no
scons-flags: debug_symbols=no
bin: ./bin/redot.macos.template_release.universal
steps:
@@ -68,18 +69,16 @@ jobs:
- name: Compilation (x86_64)
uses: ./.github/actions/godot-build
with:
sconsflags: ${{ env.SCONSFLAGS }} ${{ matrix.sconsflags }} arch=x86_64 vulkan=${{ steps.vulkan-sdk.outputs.VULKAN_ENABLED }}
scons-flags: ${{ env.SCONS_FLAGS }} ${{ matrix.scons-flags }} arch=x86_64 vulkan=${{ steps.vulkan-sdk.outputs.VULKAN_ENABLED }}
platform: macos
target: ${{ matrix.target }}
tests: ${{ matrix.tests }}
- name: Compilation (arm64)
uses: ./.github/actions/godot-build
with:
sconsflags: ${{ env.SCONSFLAGS }} ${{ matrix.sconsflags }} arch=arm64 vulkan=${{ steps.vulkan-sdk.outputs.VULKAN_ENABLED }}
scons-flags: ${{ env.SCONS_FLAGS }} ${{ matrix.scons-flags }} arch=arm64 vulkan=${{ steps.vulkan-sdk.outputs.VULKAN_ENABLED }}
platform: macos
target: ${{ matrix.target }}
tests: ${{ matrix.tests }}
- name: Save Godot build cache
uses: ./.github/actions/godot-cache-save
@@ -100,7 +99,6 @@ jobs:
name: ${{ matrix.cache-name }}
- name: Unit tests
if: matrix.tests
run: |
${{ matrix.bin }} --version
${{ matrix.bin }} --help

View File

@@ -9,7 +9,7 @@ jobs:
# First stage: Only static checks, fast and prevent expensive builds from running.
static-checks:
if: "!vars.DISABLE_GODOT_CI"
if: ${{ !vars.DISABLE_GODOT_CI || github.run_attempt > 1 }}
name: 📊 Static checks
uses: ./.github/workflows/static_checks.yml

View File

@@ -4,7 +4,11 @@ on:
# Global Settings
env:
SCONSFLAGS: verbose=yes warnings=extra werror=yes debug_symbols=no use_closure_compiler=yes strict_checks=yes
SCONS_FLAGS: >-
dev_mode=yes
tests=no
debug_symbols=no
use_closure_compiler=yes
EM_VERSION: 3.1.64
jobs:
@@ -19,15 +23,13 @@ jobs:
- name: Template w/ threads (target=template_release, threads=yes)
cache-name: web-template
target: template_release
sconsflags: threads=yes
tests: false
scons-flags: threads=yes
artifact: true
- name: Template w/o threads (target=template_release, threads=no)
cache-name: web-nothreads-template
target: template_release
sconsflags: threads=no
tests: false
scons-flags: threads=no
artifact: true
steps:
@@ -58,10 +60,9 @@ jobs:
- name: Compilation
uses: ./.github/actions/godot-build
with:
sconsflags: ${{ env.SCONSFLAGS }} ${{ matrix.sconsflags }}
scons-flags: ${{ env.SCONS_FLAGS }} ${{ matrix.scons-flags }}
platform: web
target: ${{ matrix.target }}
tests: ${{ matrix.tests }}
- name: Save Godot build cache
uses: ./.github/actions/godot-cache-save

View File

@@ -3,9 +3,14 @@ on:
workflow_call:
# Global Settings
# SCONS_CACHE for windows must be set in the build environment
env:
SCONSFLAGS: verbose=yes warnings=extra werror=yes module_text_server_fb_enabled=yes d3d12=yes strict_checks=yes "angle_libs=${{ github.workspace }}/" "accesskit_sdk_path=${{ github.workspace }}/accesskit-c-0.15.1/"
SCONS_FLAGS: >-
dev_mode=yes
module_text_server_fb_enabled=yes
debug_symbols=no
d3d12=yes
"angle_libs=${{ github.workspace }}/"
"accesskit_sdk_path=${{ github.workspace }}/accesskit-c-0.15.1/"
SCONS_CACHE_MSVC_CONFIG: true
PYTHONIOENCODING: utf8
@@ -19,37 +24,36 @@ jobs:
fail-fast: false
matrix:
include:
- name: Editor (target=editor, tests=yes)
- name: Editor (target=editor)
cache-name: windows-editor
target: editor
tests: true
# Skip debug symbols, they're way too big with MSVC.
sconsflags: debug_symbols=no vsproj=yes vsproj_gen_only=no windows_subsystem=console
scons-flags: >-
windows_subsystem=console
vsproj=yes
vsproj_gen_only=no
bin: ./bin/redot.windows.editor.x86_64.exe
compiler: msvc
- name: Editor w/ clang-cl (target=editor, tests=yes, use_llvm=yes)
- name: Editor w/ clang-cl (target=editor, use_llvm=yes)
cache-name: windows-editor-clang
target: editor
tests: true
sconsflags: debug_symbols=no windows_subsystem=console use_llvm=yes
scons-flags: >-
windows_subsystem=console
use_llvm=yes
bin: ./bin/redot.windows.editor.x86_64.llvm.exe
compiler: clang
- name: Template (target=template_release, tests=yes)
- name: Template (target=template_release)
cache-name: windows-template
target: template_release
tests: true
sconsflags: debug_symbols=no
bin: ./bin/redot.windows.template_release.x86_64.console.exe
compiler: msvc
- name: Template w/ GCC (target=template_release, tests=yes, use_mingw=yes)
- name: Template w/ GCC (target=template_release, use_mingw=yes)
cache-name: windows-template-gcc
# MinGW takes MUCH longer to compile; save time by only targeting Template.
target: template_release
tests: true
sconsflags: debug_symbols=no use_mingw=yes
scons-flags: use_mingw=yes
bin: ./bin/redot.windows.template_release.x86_64.console.exe
compiler: gcc
@@ -96,19 +100,11 @@ jobs:
- name: Compilation
uses: ./.github/actions/godot-build
with:
sconsflags: ${{ env.SCONSFLAGS }} ${{ matrix.sconsflags }}
scons-flags: ${{ env.SCONS_FLAGS }} ${{ matrix.scons-flags }}
platform: windows
target: ${{ matrix.target }}
tests: ${{ matrix.tests }}
- name: Generate Glue Code
if: ${{ matrix.cache-name == 'windows-editor-mono' }}
run: ./bin/redot.windows.editor.x86_64.mono.exe --headless --generate-mono-glue modules/mono/glue
- name: Build GodotSharp
if: ${{ matrix.cache-name == 'windows-editor-mono' }}
run: python modules/mono/build_scripts/build_assemblies.py --godot-output-dir=./bin
- name: Save Godot build cache
uses: ./.github/actions/godot-cache-save
with:
@@ -127,7 +123,6 @@ jobs:
name: ${{ matrix.cache-name }}
- name: Unit tests
if: matrix.tests
run: |
${{ matrix.bin }} --version
${{ matrix.bin }} --help