diff options
Diffstat (limited to '.github')
-rw-r--r-- | .github/actions/godot-build/action.yml | 5 | ||||
-rw-r--r-- | .github/actions/godot-cache/action.yml | 2 | ||||
-rw-r--r-- | .github/workflows/android_builds.yml | 1 | ||||
-rw-r--r-- | .github/workflows/ios_builds.yml | 1 | ||||
-rw-r--r-- | .github/workflows/javascript_builds.yml | 3 | ||||
-rw-r--r-- | .github/workflows/linux_builds.yml | 67 | ||||
-rw-r--r-- | .github/workflows/static_checks.yml | 2 | ||||
-rw-r--r-- | .github/workflows/windows_builds.yml | 6 |
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 |