name: MacOS Build on: workflow_call: inputs: cmakePreset: required: true type: string cachePrefix: required: true type: string jobs: build: name: ARM runs-on: macos-12 timeout-minutes: 120 steps: - name: Checkout Repository uses: actions/checkout@v4 - name: Set up ARM64 environment run: sudo softwareupdate --install-rosetta --agree-to-license - name: Install Package Dependencies run: arch -arm64 brew install cmake ninja - name: Setup sccache uses: hendrikmuhs/ccache-action@v1.2.14 with: variant: sccache key: macos-12-${{ inputs.cachePrefix }}-${{ inputs.cmakePreset }}-${{ github.sha }} restore-keys: macos-12-${{ inputs.cachePrefix }}-${{ inputs.cmakePreset }} max-size: 1000M - name: CMake Generation env: CC: clang CXX: clang++ run: | cmake -B build --preset=${{ inputs.cmakePreset }} \ -DCMAKE_C_COMPILER_LAUNCHER=sccache \ -DCMAKE_CXX_COMPILER_LAUNCHER=sccache - name: Build Project run: cmake --build build --parallel $((`sysctl -n hw.logicalcpu`)) - name: Run Tests run: ./test.sh - name: Upload artifact uses: actions/upload-artifact@v4 with: name: opengoal-macos-${{ inputs.cachePrefix }} if-no-files-found: error path: | ./build/goalc/goalc ./build/decompiler/extractor ./build/game/gk ./build/lsp/lsp