123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596 |
- name: 🍎 macOS Builds
- on:
- workflow_call:
- # Global Settings
- env:
- # Used for the cache key. Add version suffix to force clean build.
- GODOT_BASE_BRANCH: 4.4
- SCONSFLAGS: verbose=yes warnings=extra werror=yes module_text_server_fb_enabled=yes strict_checks=yes
- jobs:
- build-macos:
- runs-on: macos-latest
- name: ${{ matrix.name }}
- timeout-minutes: 120
- 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
- cache-limit: 1
- - name: Template (target=template_release, tests=yes)
- cache-name: macos-template
- target: template_release
- tests: true
- sconsflags: debug_symbols=no
- bin: ./bin/godot.macos.template_release.universal
- cache-limit: 1
- 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: 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 }}
- scons-cache-limit: 0 # Only cap on second run to avoid purging unnecessarily
- - name: Compilation (arm64)
- uses: ./.github/actions/godot-build
- with:
- sconsflags: ${{ env.SCONSFLAGS }} arch=arm64
- platform: macos
- target: ${{ matrix.target }}
- tests: ${{ matrix.tests }}
- scons-cache-limit: ${{ matrix.cache-limit }}
- - 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 }}
- - name: Unit tests
- if: matrix.tests
- run: |
- ${{ matrix.bin }} --version
- ${{ matrix.bin }} --help
- ${{ matrix.bin }} --test --force-colors
|