32f8292679
This improves turnaround time on large PRs where compilation is successful but unit testing or similar fails, forcing recompilation of unchanged code
93 lines
2.8 KiB
YAML
93 lines
2.8 KiB
YAML
name: 🍎 macOS Builds
|
|
on:
|
|
workflow_call:
|
|
|
|
# Global Settings
|
|
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
|
|
|
|
concurrency:
|
|
group: ci-${{github.actor}}-${{github.head_ref || github.run_number}}-${{github.ref}}-macos
|
|
cancel-in-progress: true
|
|
|
|
jobs:
|
|
build-macos:
|
|
runs-on: "macos-latest"
|
|
name: ${{ matrix.name }}
|
|
strategy:
|
|
fail-fast: false
|
|
matrix:
|
|
include:
|
|
- name: Editor (target=editor, tests=yes)
|
|
cache-name: macos-editor
|
|
target: editor
|
|
tests: true
|
|
bin: "./bin/godot.macos.editor.universal"
|
|
|
|
- name: Template (target=template_release)
|
|
cache-name: macos-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: Setup Vulkan SDK
|
|
run: |
|
|
sh misc/scripts/install_vulkan_sdk_macos.sh
|
|
|
|
- name: Compilation (x86_64)
|
|
uses: ./.github/actions/godot-build
|
|
with:
|
|
sconsflags: ${{ env.SCONSFLAGS }} arch=x86_64
|
|
platform: macos
|
|
target: ${{ matrix.target }}
|
|
tests: ${{ matrix.tests }}
|
|
|
|
- name: Compilation (arm64)
|
|
uses: ./.github/actions/godot-build
|
|
with:
|
|
sconsflags: ${{ env.SCONSFLAGS }} arch=arm64
|
|
platform: macos
|
|
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: |
|
|
lipo -create ./bin/godot.macos.${{ matrix.target }}.x86_64 ./bin/godot.macos.${{ matrix.target }}.arm64 -output ./bin/godot.macos.${{ matrix.target }}.universal
|
|
rm ./bin/godot.macos.${{ matrix.target }}.x86_64 ./bin/godot.macos.${{ matrix.target }}.arm64
|
|
strip bin/godot.*
|
|
chmod +x bin/godot.*
|
|
|
|
- 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
|