32f8292679
This improves turnaround time on large PRs where compilation is successful but unit testing or similar fails, forcing recompilation of unchanged code
100 lines
3.1 KiB
YAML
100 lines
3.1 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 "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/godot.windows.editor.x86_64.exe"
|
|
|
|
- name: Template (target=template_release)
|
|
cache-name: windows-template
|
|
target: template_release
|
|
tests: false
|
|
sconsflags: debug_symbols=no
|
|
|
|
steps:
|
|
- 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: Save Godot build cache
|
|
uses: ./.github/actions/godot-cache-save
|
|
with:
|
|
cache-name: ${{ matrix.cache-name }}
|
|
continue-on-error: true
|
|
|
|
- name: Prepare artifact
|
|
run: |
|
|
Remove-Item bin/* -Include *.exp,*.lib,*.pdb -Force
|
|
|
|
- name: Upload artifact
|
|
uses: ./.github/actions/upload-artifact
|
|
with:
|
|
name: ${{ matrix.cache-name }}
|
|
|
|
# Execute unit tests for the editor
|
|
- name: Unit tests
|
|
if: ${{ matrix.tests }}
|
|
run: |
|
|
${{ matrix.bin }} --version
|
|
${{ matrix.bin }} --help
|
|
${{ matrix.bin }} --test --force-colors
|