11name : Build macOS
22
3- # Runs on every push and pull request. Produces an ad-hoc-signed .dmg as an
4- # artifact for smoke testing. This workflow INTENTIONALLY never reads any
5- # repo secrets — that's the "build" side of the build/release split. Signed
6- # Developer ID release builds live in a separate workflow that only fires
7- # on mac-v* tag pushes and is gated on a GitHub Environment. Keeping the
8- # split structural (two files, clean separation of concerns) means a
9- # compromised PR or a mistake in this file cannot exfiltrate the signing
10- # cert — it doesn't have it in scope at all.
11-
123on :
134 push :
145 pull_request :
156
16- # Minimal token scope. We don't push, we don't comment, we don't create
17- # releases — just a read of the repo to check out code.
187permissions :
198 contents : read
209
2110jobs :
2211 build :
23- name : Build and ad-hoc sign
24- runs-on : macos-15 # Apple Silicon + Xcode 16 — our only target
25- timeout-minutes : 90 # first run will be slow (full vcpkg build)
12+ name : ${{ matrix.name }}
13+ runs-on : macos-15
14+ timeout-minutes : 90
15+
16+ strategy :
17+ fail-fast : false
18+ matrix :
19+ include :
20+ - name : Path of Building
21+ lua_tree : PathOfBuilding
22+ version : " 2.63.0"
23+ bundle_name : " Path of Building"
24+ bundle_id : ch.spidy.PathOfBuildingMac
25+ app_support_dir : PathOfBuildingMac
26+ - name : Path of Building - PoE2
27+ lua_tree : PathOfBuilding-PoE2
28+ version : " 0.15.0"
29+ bundle_name : " Path of Building - PoE2"
30+ bundle_id : ch.spidy.PathOfBuildingMacPoE2
31+ app_support_dir : PathOfBuildingMacPoE2
2632
2733 env :
28- # Route vcpkg binary cache through GitHub Actions cache. First run
29- # populates the cache (slow: ~30-60 min to build ANGLE + LuaJIT +
30- # imaging deps from source). Subsequent runs reuse it and should be
31- # under 10 min.
3234 VCPKG_BINARY_SOURCES : " clear;x-gha,readwrite"
3335
3436 steps :
3739 with :
3840 submodules : recursive
3941
40- # vcpkg's x-gha binary cache provider reads ACTIONS_CACHE_URL and
41- # ACTIONS_RUNTIME_TOKEN from the environment. GitHub Actions sets
42- # them inside the runner but they're not exposed to child processes
43- # by default, so we export them explicitly here. (Standard dance
44- # documented in the vcpkg GitHub Actions integration guide.)
4542 - name : Export Actions Cache env vars for vcpkg
4643 uses : actions/github-script@v7
4744 with :
@@ -50,26 +47,32 @@ jobs:
5047 core.exportVariable('ACTIONS_RUNTIME_TOKEN', process.env.ACTIONS_RUNTIME_TOKEN || '');
5148
5249 - name : Configure
53- run : cmake -B build -DCMAKE_BUILD_TYPE=Release
50+ run : >
51+ cmake -B build -DCMAKE_BUILD_TYPE=Release
52+ -DPOB_LUA_TREE="${{ github.workspace }}/${{ matrix.lua_tree }}"
53+ -DPOB_BUNDLE_VERSION="${{ matrix.version }}"
54+ -DPOB_BUNDLE_NAME="${{ matrix.bundle_name }}"
55+ -DPOB_BUNDLE_ID="${{ matrix.bundle_id }}"
56+ -DPOB_APP_SUPPORT_DIR="${{ matrix.app_support_dir }}"
5457
5558 - name : Build
5659 run : cmake --build build
5760
58- - name : Install to staging dir
59- run : cmake --install build --prefix "${{ runner.temp }}/pob-install-wrapper "
61+ - name : Install
62+ run : cmake --install build --prefix "${{ runner.temp }}/stage "
6063
6164 - name : Ad-hoc sign
62- run : macos/sign.sh "${{ runner.temp }}/pob-install-wrapper/Path of Building .app"
65+ run : macos/sign.sh "${{ runner.temp }}/stage/${{ matrix.bundle_name }} .app"
6366
6467 - name : Verify signature
65- run : codesign --verify --deep --strict --verbose=2 "${{ runner.temp }}/pob-install-wrapper/Path of Building .app"
68+ run : codesign --verify --deep --strict --verbose=2 "${{ runner.temp }}/stage/${{ matrix.bundle_name }} .app"
6669
6770 - name : Package DMG
68- run : macos/make-dmg.sh "${{ runner.temp }}/pob-install-wrapper/Path of Building .app" "${{ runner.temp }}/Path of Building .dmg"
71+ run : macos/make-dmg.sh "${{ runner.temp }}/stage/${{ matrix.bundle_name }} .app" "${{ runner.temp }}/${{ matrix.bundle_name }} .dmg"
6972
7073 - name : Upload DMG artifact
7174 uses : actions/upload-artifact@v4
7275 with :
73- name : pob-mac -${{ github.sha }}
74- path : ${{ runner.temp }}/Path of Building .dmg
76+ name : ${{ matrix.bundle_name }} -${{ github.sha }}
77+ path : ${{ runner.temp }}/${{ matrix.bundle_name }} .dmg
7578 if-no-files-found : error
0 commit comments