12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394 |
- 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.3
- 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: true
- sconsflags: debug_symbols=no tests=yes
- bin: "./bin/godot.macos.template_release.universal"
- 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 }}
- - name: Unit tests
- if: ${{ matrix.tests }}
- run: |
- ${{ matrix.bin }} --version
- ${{ matrix.bin }} --help
- ${{ matrix.bin }} --test --force-colors
|