Skip to content

Commit a611d22

Browse files
committed
Make sure our macOS flow mirrors Windows.
1 parent 6227691 commit a611d22

File tree

2 files changed

+35
-8
lines changed

2 files changed

+35
-8
lines changed

.github/workflows/build.yaml

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -61,13 +61,20 @@ jobs:
6161
relnotes: ${{ steps.which-branch.outputs.relnotes }}
6262
imagename: ${{ steps.build.outputs.imagename }}
6363
configuration: ${{ matrix.configuration }}
64+
# Windows Velopack outputs (passed to sign-pkg-windows)
6465
velopack_pack_id: ${{ steps.build.outputs.velopack_pack_id }}
6566
velopack_pack_version: ${{ steps.build.outputs.velopack_pack_version }}
6667
velopack_pack_title: ${{ steps.build.outputs.velopack_pack_title }}
6768
velopack_main_exe: ${{ steps.build.outputs.velopack_main_exe }}
6869
velopack_exclude: ${{ steps.build.outputs.velopack_exclude }}
6970
velopack_icon: ${{ steps.build.outputs.velopack_icon }}
7071
velopack_installer_base: ${{ steps.build.outputs.velopack_installer_base }}
72+
# macOS Velopack outputs (passed to sign-pkg-mac)
73+
velopack_mac_pack_id: ${{ steps.build.outputs.velopack_mac_pack_id }}
74+
velopack_mac_pack_version: ${{ steps.build.outputs.velopack_mac_pack_version }}
75+
velopack_mac_pack_title: ${{ steps.build.outputs.velopack_mac_pack_title }}
76+
velopack_mac_main_exe: ${{ steps.build.outputs.velopack_mac_main_exe }}
77+
velopack_mac_bundle_id: ${{ steps.build.outputs.velopack_mac_bundle_id }}
7178
env:
7279
AUTOBUILD_ADDRSIZE: 64
7380
AUTOBUILD_BUILD_ID: ${{ github.run_id }}
@@ -395,6 +402,11 @@ jobs:
395402
note_user: ${{ steps.note-creds.outputs.note_user }}
396403
note_pass: ${{ steps.note-creds.outputs.note_pass }}
397404
note_team: ${{ steps.note-creds.outputs.note_team }}
405+
velopack_pack_id: "${{ needs.build.outputs.velopack_mac_pack_id }}"
406+
velopack_pack_version: "${{ needs.build.outputs.velopack_mac_pack_version }}"
407+
velopack_pack_title: "${{ needs.build.outputs.velopack_mac_pack_title }}"
408+
velopack_main_exe: "${{ needs.build.outputs.velopack_mac_main_exe }}"
409+
velopack_bundle_id: "${{ needs.build.outputs.velopack_mac_bundle_id }}"
398410

399411
post-windows-symbols:
400412
env:

indra/newview/viewer_manifest.py

Lines changed: 23 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1249,24 +1249,39 @@ def velopack_package_finish(self):
12491249

12501250
# The .app bundle path (e.g., "/path/to/Second Life Release.app")
12511251
app_bundle = self.get_dst_prefix()
1252+
# Bundle ID from args (e.g., "com.secondlife.viewer")
1253+
bundle_id = self.args.get('bundleid', 'com.secondlife.indra.viewer')
1254+
1255+
# Icon path for macOS
1256+
icon_path = os.path.join(self.get_src_prefix(), self.icon_path(), 'secondlife.icns')
1257+
1258+
# The main executable inside Contents/MacOS/ is named after the channel
1259+
main_exe = self.channel()
1260+
1261+
# In CI, defer Velopack packaging to the sign step where code signing
1262+
# credentials are available. Emit metadata as GitHub outputs so the
1263+
# sign step can run vpk pack after signing the app bundle.
1264+
if os.getenv('GITHUB_ACTIONS'):
1265+
self.set_github_output('velopack_mac_pack_id', pack_id)
1266+
self.set_github_output('velopack_mac_pack_version', pack_version)
1267+
self.set_github_output('velopack_mac_pack_title', pack_title)
1268+
self.set_github_output('velopack_mac_main_exe', main_exe)
1269+
self.set_github_output('velopack_mac_bundle_id', bundle_id)
1270+
print("CI mode: macOS Velopack packaging deferred to sign step")
1271+
return
1272+
1273+
# Local builds: run vpk pack directly (unsigned)
1274+
12521275
# Parent directory containing the .app bundle - this is where we run vpk from
12531276
# and where the Releases directory will be created
12541277
work_dir = os.path.dirname(app_bundle)
1255-
# Bundle ID from args (e.g., "com.secondlife.viewer")
1256-
bundle_id = self.args.get('bundleid', 'com.secondlife.indra.viewer')
12571278

12581279
# Output directory for releases - clean it first to avoid version conflicts
12591280
releases_dir = os.path.join(work_dir, 'Releases')
12601281
if os.path.exists(releases_dir):
12611282
print("Cleaning existing Releases directory: %s" % releases_dir)
12621283
shutil.rmtree(releases_dir)
12631284

1264-
# Icon path for macOS
1265-
icon_path = os.path.join(self.get_src_prefix(), self.icon_path(), 'secondlife.icns')
1266-
1267-
# The main executable inside Contents/MacOS/ is named after the channel
1268-
main_exe = self.channel()
1269-
12701285
# Build vpk command for macOS
12711286
# See: https://docs.velopack.io/reference/cli/content/vpk-osx
12721287
vpk_args = [

0 commit comments

Comments
 (0)