1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495 |
- 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 strict_checks=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, tests=yes)
- cache-name: macos-template
- target: template_release
- tests: true
- sconsflags: debug_symbols=no
- bin: ./bin/godot.macos.template_release.universal
- 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 }}
- - 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
|