summaryrefslogtreecommitdiff
path: root/.github
diff options
context:
space:
mode:
Diffstat (limited to '.github')
-rw-r--r--.github/actions/godot-build/action.yml5
-rw-r--r--.github/actions/godot-cache/action.yml2
-rw-r--r--.github/workflows/android_builds.yml1
-rw-r--r--.github/workflows/ios_builds.yml1
-rw-r--r--.github/workflows/javascript_builds.yml3
-rw-r--r--.github/workflows/linux_builds.yml67
-rw-r--r--.github/workflows/static_checks.yml2
-rw-r--r--.github/workflows/windows_builds.yml6
8 files changed, 51 insertions, 36 deletions
diff --git a/.github/actions/godot-build/action.yml b/.github/actions/godot-build/action.yml
index 5ed64e7de2..7af3516f71 100644
--- a/.github/actions/godot-build/action.yml
+++ b/.github/actions/godot-build/action.yml
@@ -20,7 +20,9 @@ inputs:
default: "${{ github.workspace }}/.scons-cache/"
scons-cache-limit:
description: The scons cache size limit.
- default: 4096
+ # actions/cache has 10 GiB limit, and GitHub runners have a 14 GiB disk.
+ # Limit to 7 GiB to avoid having the extracted cache fill the disk.
+ default: 7168
runs:
using: "composite"
steps:
@@ -32,5 +34,6 @@ runs:
SCONS_CACHE_LIMIT: ${{ inputs.scons-cache-limit }}
run: |
echo "Building with flags:" ${{ env.SCONSFLAGS }}
+ if ! ${{ inputs.tools }}; then rm -rf editor; fi # Ensure we don't include editor code.
scons p=${{ inputs.platform }} target=${{ inputs.target }} tools=${{ inputs.tools }} tests=${{ inputs.tests }} --jobs=2 ${{ env.SCONSFLAGS }}
ls -l bin/
diff --git a/.github/actions/godot-cache/action.yml b/.github/actions/godot-cache/action.yml
index db14a0b97a..2d7afc8514 100644
--- a/.github/actions/godot-cache/action.yml
+++ b/.github/actions/godot-cache/action.yml
@@ -12,7 +12,7 @@ runs:
steps:
# Upload cache on completion and check it out now
- name: Load .scons_cache directory
- uses: actions/cache@v2
+ uses: actions/cache@v3
with:
path: ${{inputs.scons-cache}}
key: ${{inputs.cache-name}}-${{env.GODOT_BASE_BRANCH}}-${{github.ref}}-${{github.sha}}
diff --git a/.github/workflows/android_builds.yml b/.github/workflows/android_builds.yml
index dd3622f1f0..a9a580247b 100644
--- a/.github/workflows/android_builds.yml
+++ b/.github/workflows/android_builds.yml
@@ -3,6 +3,7 @@ on: [push, pull_request]
# Global Settings
env:
+ # Only used for the cache key. Increment version to force clean build.
GODOT_BASE_BRANCH: master
SCONSFLAGS: verbose=yes warnings=extra werror=yes debug_symbols=no module_text_server_fb_enabled=yes
diff --git a/.github/workflows/ios_builds.yml b/.github/workflows/ios_builds.yml
index cd9c7ec117..40f091e234 100644
--- a/.github/workflows/ios_builds.yml
+++ b/.github/workflows/ios_builds.yml
@@ -3,6 +3,7 @@ on: [push, pull_request]
# Global Settings
env:
+ # Only used for the cache key. Increment version to force clean build.
GODOT_BASE_BRANCH: master
SCONSFLAGS: verbose=yes warnings=extra werror=yes debug_symbols=no module_text_server_fb_enabled=yes
diff --git a/.github/workflows/javascript_builds.yml b/.github/workflows/javascript_builds.yml
index 9163baab0f..00c79e8ba0 100644
--- a/.github/workflows/javascript_builds.yml
+++ b/.github/workflows/javascript_builds.yml
@@ -3,9 +3,10 @@ on: [push, pull_request]
# Global Settings
env:
+ # Only used for the cache key. Increment version to force clean build.
GODOT_BASE_BRANCH: master
SCONSFLAGS: verbose=yes warnings=extra werror=yes debug_symbols=no
- EM_VERSION: 2.0.27
+ EM_VERSION: 3.1.10
EM_CACHE_FOLDER: "emsdk-cache"
concurrency:
diff --git a/.github/workflows/linux_builds.yml b/.github/workflows/linux_builds.yml
index 04b2452a9a..338278f461 100644
--- a/.github/workflows/linux_builds.yml
+++ b/.github/workflows/linux_builds.yml
@@ -3,7 +3,8 @@ on: [push, pull_request]
# Global Settings
env:
- GODOT_BASE_BRANCH: master
+ # Only used for the cache key. Increment version to force clean build.
+ GODOT_BASE_BRANCH: master-v2
SCONSFLAGS: verbose=yes warnings=extra werror=yes module_text_server_fb_enabled=yes
concurrency:
@@ -18,38 +19,51 @@ jobs:
fail-fast: false
matrix:
include:
-# - name: Editor w/ Mono (target=release_debug, tools=yes, tests=yes)
-# cache-name: linux-editor-mono
-# target: release_debug
-# tools: true
-# tests: false # Disabled due freeze caused by mix Mono build and CI
-# sconsflags: module_mono_enabled=yes mono_static=yes mono_glue=no
-# doc-test: true
-# bin: "./bin/godot.linuxbsd.opt.tools.64.mono"
-# build-mono: true
-# artifact: true
-
- - name: Editor with doubles and sanitizers (target=debug, tools=yes, float=64, tests=yes, use_asan=yes, use_ubsan=yes)
+ - name: Editor w/ Mono (target=release_debug, tools=yes, tests=yes)
+ cache-name: linux-editor-mono
+ target: release_debug
+ tools: true
+ tests: false # Disabled due freeze caused by mix Mono build and CI
+ sconsflags: module_mono_enabled=yes mono_static=yes mono_glue=no
+ doc-test: true
+ bin: "./bin/godot.linuxbsd.opt.tools.64.mono"
+ build-mono: true
+ artifact: true
+
+ - name: Editor with doubles and GCC sanitizers (target=debug, tools=yes, float=64, tests=yes, use_asan=yes, use_ubsan=yes)
cache-name: linux-editor-double-sanitizers
target: debug
tools: true
tests: true
sconsflags: float=64 use_asan=yes use_ubsan=yes
proj-test: true
+ # Can be turned off for PRs that intentionally break compat with godot-cpp,
+ # until both the upstream PR and the matching godot-cpp changes are merged.
godot-cpp-test: true
bin: "./bin/godot.linuxbsd.double.tools.64.san"
build-mono: false
# Skip 2GiB artifact speeding up action.
artifact: false
-# - name: Template w/ Mono (target=release, tools=no)
-# cache-name: linux-template-mono
-# target: release
-# tools: false
-# tests: false
-# sconsflags: module_mono_enabled=yes mono_static=yes mono_glue=no debug_symbols=no
-# build-mono: false
-# artifact: true
+ - name: Editor with clang sanitizers (target=debug, tools=yes, use_asan=yes, use_ubsan=yes, use_llvm=yes)
+ cache-name: linux-editor-llvm-sanitizers
+ target: debug
+ tools: true
+ tests: true
+ sconsflags: use_asan=yes use_ubsan=yes use_llvm=yes
+ bin: "./bin/godot.linuxbsd.tools.64.llvm.san"
+ build-mono: false
+ # Skip 2GiB artifact speeding up action.
+ artifact: false
+
+ - name: Template w/ Mono (target=release, tools=no)
+ cache-name: linux-template-mono
+ target: release
+ tools: false
+ tests: false
+ sconsflags: module_mono_enabled=yes mono_static=yes mono_glue=no debug_symbols=no
+ build-mono: false
+ artifact: true
- name: Minimal Template (target=release, tools=no, everything disabled)
cache-name: linux-template-minimal
@@ -72,7 +86,8 @@ jobs:
# The actual dependencies
sudo apt-get install build-essential pkg-config libx11-dev libxcursor-dev \
libxinerama-dev libgl1-mesa-dev libglu-dev libasound2-dev libpulse-dev \
- libdbus-1-dev libudev-dev libxi-dev libxrandr-dev yasm xvfb wget unzip
+ libdbus-1-dev libudev-dev libxi-dev libxrandr-dev yasm xvfb wget unzip \
+ llvm libspeechd-dev speech-dispatcher
- name: Setup Godot build cache
uses: ./.github/actions/godot-cache
@@ -178,14 +193,6 @@ jobs:
cp -f extension_api.json godot-cpp/godot-headers/
cp -f core/extension/gdnative_interface.h godot-cpp/godot-headers/godot/
- # Build godot-cpp library
- - name: Build godot-cpp library
- if: ${{ matrix.godot-cpp-test }}
- run: |
- cd godot-cpp
- scons target=${{ matrix.target }} generate_bindings=yes -j2
- cd ..
-
# Build godot-cpp test extension
- name: Build godot-cpp test extension
if: ${{ matrix.godot-cpp-test }}
diff --git a/.github/workflows/static_checks.yml b/.github/workflows/static_checks.yml
index 724bebbd13..5531509007 100644
--- a/.github/workflows/static_checks.yml
+++ b/.github/workflows/static_checks.yml
@@ -27,7 +27,7 @@ jobs:
sudo apt-get install -qq dos2unix recode clang-format-13 libxml2-utils
sudo update-alternatives --remove-all clang-format
sudo update-alternatives --install /usr/bin/clang-format clang-format /usr/bin/clang-format-13 100
- sudo pip3 install black==21.10b0 pygments
+ sudo pip3 install black==22.3.0 pygments
- name: File formatting checks (file_format.sh)
run: |
diff --git a/.github/workflows/windows_builds.yml b/.github/workflows/windows_builds.yml
index ad870ae58f..4919f34cf0 100644
--- a/.github/workflows/windows_builds.yml
+++ b/.github/workflows/windows_builds.yml
@@ -4,7 +4,8 @@ on: [push, pull_request]
# Global Settings
# SCONS_CACHE for windows must be set in the build environment
env:
- GODOT_BASE_BRANCH: master
+ # Only used for the cache key. Increment version to force clean build.
+ GODOT_BASE_BRANCH: master-v2
SCONSFLAGS: verbose=yes warnings=all werror=yes module_text_server_fb_enabled=yes
SCONS_CACHE_MSVC_CONFIG: true
@@ -26,6 +27,8 @@ jobs:
target: release_debug
tools: true
tests: true
+ # Skip debug symbols, they're way too big with MSVC.
+ sconsflags: debug_symbols=no
bin: "./bin/godot.windows.opt.tools.64.exe"
- name: Template (target=release, tools=no)
@@ -56,7 +59,6 @@ jobs:
target: ${{ matrix.target }}
tools: ${{ matrix.tools }}
tests: ${{ matrix.tests }}
- scons-cache-limit: 3072
# Execute unit tests for the editor
- name: Unit tests