mirror of
https://github.com/chenasraf/redot-engine.git
synced 2026-05-18 01:39:11 +00:00
Add Linux Editor tests workflow matrix Add Windows Editor w/ Mono workflow matrix Add Generate Glue Code job to Windows workflow Add Build GodotSharp job to Windows workflow Add godot compatibility version references Add Godot author info Add Godot version compatibility info Add Godot donor info Add Godot authors and donors to editor_about.cpp Credits: Co-authored-by: Skogi <skogi.b@gmail.com> Co-authored-by: Spartan322 <Megacake1234@gmail.com> Co-authored-by: swashberry <swashdev@pm.me> Co-authored-by: Christoffer Sundbom <christoffer_karlsson@live.se> Co-authored-by: Dubhghlas McLaughlin <103212704+mcdubhghlas@users.noreply.github.com> Co-authored-by: McDubh <103212704+mcdubhghlas@users.noreply.github.com> Co-authored-by: Dubhghlas McLaughlin <103212704+mcdubhghlas@users.noreply.github.com> Co-authored-by: radenthefolf <radenthefolf@gmail.com> Co-authored-by: John Knight <80524176+Tekisasu-JohnK@users.noreply.github.com> Co-authored-by: Adam Vondersaar <adam.vondersaar@uphold.com> Co-authored-by: decryptedchaos <nixgod@gmail.com> Co-authored-by: zaftnotameni <122100803+zaftnotameni@users.noreply.github.com> Co-authored-by: Aaron Benjamin <lifeartstudios@gmail.com> Co-authored-by: wesam <108880473+wesamdev@users.noreply.github.com> Co-authored-by: Mister Puma <MisterPuma80@gmail.com> Co-authored-by: Aaron Benjamin <lifeartstudios@gmail.com> Co-authored-by: SingleError <isaaconeoneone@gmail.com> Co-authored-by: Bioblaze Payne <BioblazePayne@gmail.com>
133 lines
4.4 KiB
YAML
133 lines
4.4 KiB
YAML
name: 🏁 Windows Builds
|
|
on:
|
|
workflow_call:
|
|
|
|
# Global Settings
|
|
# SCONS_CACHE for windows must be set in the build environment
|
|
env:
|
|
# Used for the cache key. Add version suffix to force clean build.
|
|
GODOT_BASE_BRANCH: master
|
|
SCONSFLAGS: verbose=yes warnings=extra werror=yes module_text_server_fb_enabled=yes d3d12=yes strict_checks=yes "angle_libs=${{ github.workspace }}/"
|
|
SCONS_CACHE_MSVC_CONFIG: true
|
|
|
|
concurrency:
|
|
group: ci-${{ github.actor }}-${{ github.head_ref || github.run_number }}-${{ github.ref }}-windows
|
|
cancel-in-progress: true
|
|
|
|
jobs:
|
|
build-windows:
|
|
# Windows 10 with latest image
|
|
runs-on: windows-latest
|
|
name: ${{ matrix.name }}
|
|
strategy:
|
|
fail-fast: false
|
|
matrix:
|
|
include:
|
|
- name: Editor (target=editor, tests=yes)
|
|
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
|
|
bin: ./bin/redot.windows.editor.x86_64.exe
|
|
artifact: true
|
|
|
|
- name: Editor w/ Mono (target=editor)
|
|
cache-name: windows-editor-mono
|
|
target: editor
|
|
sconsflags: module_mono_enabled=yes
|
|
bin: ./bin/redot.windows.editor.x86_64.mono.exe
|
|
build-mono: true
|
|
tests: false # Disabled due freeze caused by mix Mono build and CI
|
|
doc-test: true
|
|
proj-conv: true
|
|
api-compat: true
|
|
artifact: true
|
|
|
|
- name: Editor w/ clang-cl (target=editor, tests=yes, use_llvm=yes)
|
|
cache-name: windows-editor-clang
|
|
target: editor
|
|
tests: true
|
|
sconsflags: debug_symbols=no windows_subsystem=console use_llvm=yes
|
|
bin: ./bin/redot.windows.editor.x86_64.llvm.exe
|
|
|
|
- name: Template (target=template_release, tests=yes)
|
|
cache-name: windows-template
|
|
target: template_release
|
|
tests: true
|
|
sconsflags: debug_symbols=no
|
|
bin: ./bin/redot.windows.template_release.x86_64.console.exe
|
|
artifact: true
|
|
|
|
steps:
|
|
- name: Checkout
|
|
uses: actions/checkout@v4
|
|
with:
|
|
submodules: recursive
|
|
|
|
- name: Restore Godot build cache
|
|
uses: ./.github/actions/godot-cache-restore
|
|
with:
|
|
cache-name: ${{ matrix.cache-name }}
|
|
continue-on-error: true
|
|
|
|
- name: Setup Python and SCons
|
|
uses: ./.github/actions/godot-deps
|
|
|
|
- name: Download Direct3D 12 SDK components
|
|
run: python ./misc/scripts/install_d3d12_sdk_windows.py
|
|
|
|
- name: Download pre-built ANGLE static libraries
|
|
uses: dsaltares/fetch-gh-release-asset@1.1.2
|
|
with:
|
|
repo: godotengine/godot-angle-static
|
|
version: tags/chromium/6029
|
|
file: Windows.6029-1.MSVC_17.x86_64.x86_32.zip
|
|
target: angle/angle.zip
|
|
|
|
- name: Extract pre-built ANGLE static libraries
|
|
run: Expand-Archive -Force angle/angle.zip ${{ github.workspace }}/
|
|
|
|
- name: Setup MSVC problem matcher
|
|
uses: ammaraskar/msvc-problem-matcher@master
|
|
|
|
- name: Compilation
|
|
uses: ./.github/actions/godot-build
|
|
with:
|
|
sconsflags: ${{ env.SCONSFLAGS }} ${{ matrix.sconsflags }}
|
|
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:
|
|
cache-name: ${{ matrix.cache-name }}
|
|
continue-on-error: true
|
|
|
|
- name: Prepare artifact
|
|
if: ${{ matrix.artifact }}
|
|
run: |
|
|
Remove-Item bin/* -Include *.exp,*.lib,*.pdb -Force
|
|
|
|
- name: Upload artifact
|
|
if: ${{ matrix.artifact }}
|
|
uses: ./.github/actions/upload-artifact
|
|
with:
|
|
name: ${{ matrix.cache-name }}
|
|
|
|
- name: Unit tests
|
|
if: matrix.tests
|
|
run: |
|
|
${{ matrix.bin }} --version
|
|
${{ matrix.bin }} --help
|
|
${{ matrix.bin }} --test --force-colors
|