Skip to content

Commit 60a3e79

Browse files
committed
Enable PoE 2 build on CI
1 parent e2b815e commit 60a3e79

1 file changed

Lines changed: 34 additions & 31 deletions

File tree

.github/workflows/build-macos.yml

Lines changed: 34 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -1,34 +1,36 @@
11
name: 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-
123
on:
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.
187
permissions:
198
contents: read
209

2110
jobs:
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:
@@ -37,11 +39,6 @@ jobs:
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

Comments
 (0)