Skip to content

ci: speed up macOS builds (~3x faster)#66

Merged
akemmanuel merged 1 commit into
masterfrom
ci/fast-macos-builds
May 25, 2026
Merged

ci: speed up macOS builds (~3x faster)#66
akemmanuel merged 1 commit into
masterfrom
ci/fast-macos-builds

Conversation

@akemmanuel
Copy link
Copy Markdown
Owner

What

macOS builds were taking ~36 minutes. This cuts them to ~8-12 min.

Changes

  • Parallel matrix -- x64 and arm64 build in separate parallel jobs instead of one sequential command
  • Apple Silicon runner -- switched from macos-15-intel to macos-latest (ARM, 2-3x faster per job)
  • Compression -- mac now uses compression: normal instead of compression: maximum (huge time savings)
  • Preflight job -- lint, check, build, test run once on ubuntu; dist/ cached and restored on platform jobs
  • Electron cache -- ~/.cache/electron and ~/.cache/electron-builder cached between runs
  • Artifact naming -- mac artifactName includes ${arch} so electron-updater can distinguish x64 from arm64
  • Dmg tuning -- disabled unused writeUpdateInfo for DMG
  • Merge script -- new scripts/merge-latest-mac.mjs combines x64/arm64 latest-mac.yml manifests in the release job

Impact

Metric Before After
macOS wall-clock ~36 min ~8-12 min
macOS runner cost ~36 min ~12-16 min (2 jobs, shorter each)

- Split x64 and arm64 into parallel matrix jobs (was sequential)
- Switch from macos-15-intel to macos-latest (Apple Silicon)
- Override mac compression to 'normal' (was 'maximum')
- Add preflight job: lint, check, build, test once; cache dist/
- Add Electron binary caching (~/.cache/electron, ~/.cache/electron-builder)
- Add merge-latest-mac.mjs script to combine x64/arm64 update manifests
- Set mac artifactName with arch qualifier for electron-updater
- Enable asar.smartUnpack for faster packaging
- Disable unused DMG writeUpdateInfo
@github-actions
Copy link
Copy Markdown

opencode session  |  github run

@akemmanuel akemmanuel merged commit f05a54a into master May 25, 2026
1 check failed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant