name: 🍎 macOS on: workflow_call: workflow_dispatch: # push: # branches: [ github-workflows ] # Global Settings env: GODOT_TREEISH: 4.1.1-stable LIMBOAI_TREEISH: master VERSION_STRING: 4.1.1-limboai+dev SCONS_CACHE_MSVC_CONFIG: true SCONS_CACHE_LIMIT: 4096 SCONSFLAGS: production=yes tests=no verbose=yes warnings=extra werror=yes module_text_server_fb_enabled=yes DOTNET_NOLOGO: true DOTNET_CLI_TELEMETRY_OPTOUT: true jobs: macos-builds: runs-on: "macos-latest" name: ${{ matrix.name }} strategy: fail-fast: false matrix: include: - name: Editor (x86_64, release) target: editor arch: x86_64 build-mono: false artifact-name: macos-editor - name: Template (x86_64, release) target: template_release arch: x86_64 build-mono: false artifact-name: macos-templates - name: Template (x86_64, debug) target: template_debug arch: x86_64 build-mono: false artifact-name: macos-templates - name: Editor (arm64, release) target: editor arch: arm64 build-mono: false artifact-name: macos-editor - name: Template (arm64, release) target: template_release arch: arm64 build-mono: false artifact-name: macos-templates - name: Template (arm64, debug) target: template_debug arch: arm64 build-mono: false artifact-name: macos-templates # - name: .NET Editor (x86_64, release) # target: editor # arch: x86_64 # build-mono: true # artifact-name: macos-mono-editor # - name: .NET Template (x86_64, release) # target: template_release # arch: x86_64 # build-mono: true # artifact-name: macos-mono-templates # - name: .NET Template (x86_64, debug) # target: template_debug # arch: x86_64 # build-mono: true # artifact-name: macos-mono-templates # - name: .NET Editor (arm64, release) # target: editor # arch: arm64 # build-mono: true # artifact-name: macos-mono-editor # - name: .NET Template (arm64, release) # target: template_release # arch: arm64 # build-mono: true # artifact-name: macos-mono-templates # - name: .NET Template (arm64, debug) # target: template_debug # arch: arm64 # build-mono: true # artifact-name: macos-mono-templates env: BIN: godot.macos.${{matrix.target}}.${{matrix.arch}}${{ matrix.build-mono == true && '.mono' || '' }} # BIN2: godot.macos.${{ matrix.target }}.arm64${{ matrix.build-mono == true && '.mono' || '' }} # UNIBIN: godot.macos.${{ matrix.target }}.universal${{ matrix.build-mono == true && '.mono' || '' }} steps: # ! DELETE_ME: - name: Dump environment env: ENVI: ${{ toJson(env) }} run: | echo "$ENVI" # Clone Godot - uses: actions/checkout@v3 with: repository: godotengine/godot ref: ${{ env.GODOT_TREEISH }} # Clone LimboAI module - uses: actions/checkout@v3 with: path: modules/limboai ref: ${{ env.LIMBOAI_TREEISH }} # Use python 3.x release (works cross platform) - name: Set up Python 3.x uses: actions/setup-python@v4 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' - name: Setup scons run: | python -c "import sys; print(sys.version)" python -m pip install scons==4.4.0 - name: Diagnostics run: | python --version scons --version dotnet --info - name: Setup Vulkan SDK run: | sh misc/scripts/install_vulkan_sdk_macos.sh - name: Compilation env: SCONS_CACHE: ${{github.workspace}}/.scons_cache/ run: | scons -j2 platform=macos target=${{matrix.target}} arch=${{matrix.arch}} module_mono_enabled=${{matrix.build-mono}} ${{env.SCONSFLAGS}} # - name: Generate C# glue # if: matrix.build-mono && matrix.target == 'editor' # run: | # ./bin/$BIN --headless --generate-mono-glue ./modules/mono/glue || true # - name: Build .NET solutions # if: matrix.build-mono && matrix.target == 'editor' # run: | # ./modules/mono/build_scripts/build_assemblies.py --godot-output-dir=./bin --godot-platform=macos - name: Prepare artifact run: | strip bin/godot.* chmod +x bin/godot.* - name: Upload artifact uses: actions/upload-artifact@v3 with: name: ${{ matrix.artifact-name }} path: bin/*