summaryrefslogtreecommitdiff
path: root/.github/workflows/windows_builds.yml
diff options
context:
space:
mode:
Diffstat (limited to '.github/workflows/windows_builds.yml')
-rw-r--r--.github/workflows/windows_builds.yml164
1 files changed, 56 insertions, 108 deletions
diff --git a/.github/workflows/windows_builds.yml b/.github/workflows/windows_builds.yml
index 53febd353b..ad870ae58f 100644
--- a/.github/workflows/windows_builds.yml
+++ b/.github/workflows/windows_builds.yml
@@ -5,122 +5,70 @@ on: [push, pull_request]
# SCONS_CACHE for windows must be set in the build environment
env:
GODOT_BASE_BRANCH: master
- SCONSFLAGS: platform=windows verbose=yes warnings=all werror=yes debug_symbols=no --jobs=2 module_text_server_fb_enabled=yes
+ SCONSFLAGS: verbose=yes warnings=all werror=yes module_text_server_fb_enabled=yes
SCONS_CACHE_MSVC_CONFIG: true
- SCONS_CACHE_LIMIT: 3072
concurrency:
group: ci-${{github.actor}}-${{github.head_ref || github.run_number}}-${{github.ref}}-windows
cancel-in-progress: true
jobs:
- windows-editor:
+ build-windows:
# Windows 10 with latest image
runs-on: "windows-latest"
-
- # Windows Editor - checkout with the plugin
- name: Editor (target=release_debug, tools=yes, tests=yes)
-
- steps:
- - uses: actions/checkout@v2
-
- # Upload cache on completion and check it out now
- # Editing this is pretty dangerous for Windows since it can break and needs to be properly tested with a fresh cache.
- - name: Load .scons_cache directory
- id: windows-editor-cache
- uses: actions/cache@v2
- with:
- path: /.scons_cache/
- key: ${{github.job}}-${{env.GODOT_BASE_BRANCH}}-${{github.ref}}-${{github.sha}}
- restore-keys: |
- ${{github.job}}-${{env.GODOT_BASE_BRANCH}}-${{github.ref}}-${{github.sha}}
- ${{github.job}}-${{env.GODOT_BASE_BRANCH}}-${{github.ref}}
- ${{github.job}}-${{env.GODOT_BASE_BRANCH}}
- continue-on-error: true
-
- # Use python 3.x release (works cross platform; best to keep self contained in it's own step)
- - name: Set up Python 3.x
- uses: actions/setup-python@v2
- with:
- # Semantic version range syntax or exact version of a Python version
- python-version: '3.x'
- # Optional - x64 or x86 architecture, defaults to x64
- architecture: 'x64'
-
- # Setup scons, print python version and scons version info, so if anything is broken it won't run the build.
- - name: Configuring Python packages
- run: |
- python -c "import sys; print(sys.version)"
- python -m pip install scons
- python --version
- scons --version
-
- # We should always be explicit with our flags usage here since it's gonna be sure to always set those flags
- - name: Compilation
- env:
- SCONS_CACHE: /.scons_cache/
- run: |
- scons tools=yes tests=yes target=release_debug
- ls -l bin/
-
- # Execute unit tests for the editor
- - name: Unit Tests
- run: |
- ./bin/godot.windows.opt.tools.64.exe --test
-
- - uses: actions/upload-artifact@v2
- with:
- name: ${{ github.job }}
- path: bin/*
- retention-days: 14
-
- windows-template:
- runs-on: "windows-latest"
- name: Template (target=release, tools=no)
+ name: ${{ matrix.name }}
+ strategy:
+ fail-fast: false
+ matrix:
+ include:
+ - name: Editor (target=release_debug, tools=yes, tests=yes)
+ cache-name: windows-editor
+ target: release_debug
+ tools: true
+ tests: true
+ bin: "./bin/godot.windows.opt.tools.64.exe"
+
+ - name: Template (target=release, tools=no)
+ cache-name: windows-template
+ target: release
+ tools: false
+ tests: false
+ sconsflags: debug_symbols=no
steps:
- - uses: actions/checkout@v2
-
- # Upload cache on completion and check it out now
- # Editing this is pretty dangerous for Windows since it can break and needs to be properly tested with a fresh cache.
- - name: Load .scons_cache directory
- id: windows-template-cache
- uses: RevoluPowered/cache@v2.1
- with:
- path: /.scons_cache/
- key: ${{github.job}}-${{env.GODOT_BASE_BRANCH}}-${{github.ref}}-${{github.sha}}
- restore-keys: |
- ${{github.job}}-${{env.GODOT_BASE_BRANCH}}-${{github.ref}}-${{github.sha}}
- ${{github.job}}-${{env.GODOT_BASE_BRANCH}}-${{github.ref}}
- ${{github.job}}-${{env.GODOT_BASE_BRANCH}}
- continue-on-error: true
-
- # Use python 3.x release (works cross platform)
- - name: Set up Python 3.x
- uses: actions/setup-python@v2
- with:
- # Semantic version range syntax or exact version of a Python version
- python-version: '3.x'
- # Optional - x64 or x86 architecture, defaults to x64
- architecture: 'x64'
-
- # You can test your matrix by printing the current Python version
- - name: Configuring Python packages
- run: |
- python -c "import sys; print(sys.version)"
- python -m pip install scons
- python --version
- scons --version
-
- - name: Compilation
- env:
- SCONS_CACHE: /.scons_cache/
- run: |
- scons target=release tools=no
- ls -l bin/
-
- - uses: actions/upload-artifact@v2
- with:
- name: ${{ github.job }}
- path: bin/*
- retention-days: 14
+ - uses: actions/checkout@v2
+
+ - name: Setup Godot build cache
+ uses: ./.github/actions/godot-cache
+ with:
+ cache-name: ${{ matrix.cache-name }}
+ continue-on-error: true
+
+
+ - name: Setup python and scons
+ uses: ./.github/actions/godot-deps
+
+ - name: Compilation
+ uses: ./.github/actions/godot-build
+ with:
+ sconsflags: ${{ env.SCONSFLAGS }} ${{ matrix.sconsflags }}
+ platform: windows
+ target: ${{ matrix.target }}
+ tools: ${{ matrix.tools }}
+ tests: ${{ matrix.tests }}
+ scons-cache-limit: 3072
+
+ # Execute unit tests for the editor
+ - name: Unit tests
+ if: ${{ matrix.tests }}
+ run: |
+ ${{ matrix.bin }} --test
+
+ - 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 }}