Enhance build configuration for macOS and update artifact naming #22
Reference in New Issue
Block a user
Delete Branch "universal-mac-build"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Summary by CodeRabbit
✏️ Tip: You can customize this high-level summary in your review settings.
Walkthrough
CI workflow pins artifact actions to commit hashes, upgrades macOS runner to macos-14, and drives platform builds via a matrix
dist_script(includingdist:mac-arm64anddist:mac-universal). package.json adds mac dist scripts, sets mac target to universal, and embeds arch in artifact names.Changes
.github/workflows/build.ymlmacos-14; addedmatrix.dist_scriptentries for Windows/Linux/mac; renamed build step to "Build Electron App (Universal)"; build step runsnpm run ${{ matrix.dist_script }}; artifact patterns updated todist/*-mac-*.dmg; conditional steps adjusted to use matrix-driven scripts.package.jsondist:mac-arm64anddist:mac-universalnpm scripts; changed mactargetfrom"dmg"to{ "target": "dmg", "arch": ["universal"] }; updatedartifactNametoReticulumMeshChat-v${version}-mac-${arch}.${ext}; addedx64ArchFilesentry.Sequence Diagram(s)
Estimated code review effort
🎯 2 (Simple) | ⏱️ ~10 minutes
dist_scriptmappings and conditional step logicelectron-buildermac universal config and artifactName patternPoem
Pre-merge checks and finishing touches
✅ Passed checks (3 passed)
✨ Finishing touches
🧪 Generate unit tests (beta)
universal-mac-build📜 Recent review details
Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro
📥 Commits
Reviewing files that changed from the base of the PR and between
365531be9bandf2ab1ad067.📒 Files selected for processing (1)
package.json(2 hunks)🚧 Files skipped from review as they are similar to previous changes (1)
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (1)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.
❤️ Share
Comment
@coderabbitai helpto get the list of available commands and usage tips.Here's the code health analysis summary for commits
d841999..f2ab1ad. View details on DeepSource ↗.Analysis Summary
Actionable comments posted: 3
📜 Review details
Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro
📥 Commits
Reviewing files that changed from the base of the PR and between
d8419990b1anda74a6869ea.📒 Files selected for processing (2)
.github/workflows/build.yml(2 hunks)package.json(2 hunks)🔇 Additional comments (4)
@@ -94,3 +96,4 @@dist_script: dist-prebuiltpermissions:contents: writesteps:⚠️ Potential issue | 🟠 Major
Artifact upload pattern may not match generated filenames with architecture suffix.
The
release_artifactspattern at line 86 was updated todist/*-mac-*.dmg(to account for architecture), but the artifact upload at line 192 still uses the old patterndist/*-mac.dmg. The newartifactNamein package.json includes${arch}, so generated files will be named likeReticulumMeshChat-v2.41.0-mac-universal.dmg, which matches the wildcard pattern at line 86 but the upload step at line 192 may not capture them correctly.Update the artifact upload pattern to include architecture:
Also applies to: 192-192
🤖 Prompt for AI Agents
✅ Addressed in commits
c95d2fdtod69a3e8@@ -16,1 +15,4 @@"dist-prebuilt": "npm run electron-postinstall && npm run build-backend && electron-builder --publish=never","dist:mac-arm64": "npm run electron-postinstall && npm run build && electron-builder --mac --arm64 --publish=never","dist:mac-universal": "npm run electron-postinstall && npm run build && electron-builder --mac --universal --publish=never"},⚠️ Potential issue | 🟠 Major
New
dist:mac-arm64anddist:mac-universalscripts are unused by the workflow.Three distribution scripts now exist:
dist: full build for current platform (used by legacy code)dist-prebuilt: skips frontend, used by workflow for ALL platformsdist:mac-arm64&dist:mac-universal: architecture-specific, but never invokedThe workflow always calls
npm run dist-prebuiltregardless of platform, so the new macOS-specific scripts with explicit architecture targets are dead code. This defeats the purpose of offering architecture-specific builds.Either:
If option 1, update
.github/workflows/build.ymlline 180 to:🤖 Prompt for AI Agents
✅ Addressed in commits
c95d2fdtod69a3e8@@ -36,9 +38,15 @@"buildResources": "electron/build"⚠️ Potential issue | 🔴 Critical
🧩 Analysis chain
🏁 Script executed:
Repository: Sudo-Ivan/reticulum-meshchatX
Length of output: 55
🏁 Script executed:
Repository: Sudo-Ivan/reticulum-meshchatX
Length of output: 91
🏁 Script executed:
Repository: Sudo-Ivan/reticulum-meshchatX
Length of output: 100
🏁 Script executed:
Repository: Sudo-Ivan/reticulum-meshchatX
Length of output: 55
🏁 Script executed:
Repository: Sudo-Ivan/reticulum-meshchatX
Length of output: 145
🏁 Script executed:
Repository: Sudo-Ivan/reticulum-meshchatX
Length of output: 789
🏁 Script executed:
Repository: Sudo-Ivan/reticulum-meshchatX
Length of output: 91
🏁 Script executed:
Repository: Sudo-Ivan/reticulum-meshchatX
Length of output: 1127
🏁 Script executed:
Repository: Sudo-Ivan/reticulum-meshchatX
Length of output: 561
🏁 Script executed:
Repository: Sudo-Ivan/reticulum-meshchatX
Length of output: 55
🏁 Script executed:
Repository: Sudo-Ivan/reticulum-meshchatX
Length of output: 55
🏁 Script executed:
Repository: Sudo-Ivan/reticulum-meshchatX
Length of output: 520
🏁 Script executed:
Repository: Sudo-Ivan/reticulum-meshchatX
Length of output: 1312
🏁 Script executed:
Repository: Sudo-Ivan/reticulum-meshchatX
Length of output: 455
🌐 Web query:
electron-builder ${os} variable macOS darwin value💡 Result:
In electron-builder the ${os} placeholder for macOS equals "darwin". [1][2]
Sources:
[1] electron-builder docs — Configuration / Common Configuration.
[2] electron-builder docs (variable substitution summary).
Critical artifact naming mismatch:
${os}resolves to "darwin" but workflow patterns expect "mac".The
artifactNamechange in package.json (line 48) uses${os}which electron-builder resolves to"darwin"for macOS, producing filenames likeReticulumMeshChat-v{version}-darwin-universal.dmg. However, the workflow patterns at lines 86 and 192 expectdist/*-mac-*.dmganddist/*-mac.dmgrespectively, which will not match the generated artifacts. Either update the artifactName to use a hardcoded "mac" string instead of${os}, or update the workflow patterns to expect "darwin-*" for the macOS artifacts.🤖 Prompt for AI Agents
✅ Addressed in commits
c95d2fdtod69a3e8Actionable comments posted: 0
🧹 Nitpick comments (1)
📜 Review details
Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro
📥 Commits
Reviewing files that changed from the base of the PR and between
a74a6869eaandd69a3e8522.📒 Files selected for processing (2)
.github/workflows/build.yml(6 hunks)package.json(2 hunks)🔇 Additional comments (3)