Skip to content

Reference: Release and Build

This page documents local build commands and CI release pipelines.

Local Build Helper

Primary script: build.py

Supported options:

  • app name override (--name)
  • clean build (--clean)
  • onefile mode (--onefile)
  • console mode (--console)
  • zip packaging (--zip)
  • dmg packaging on macOS (--dmg)

Standard Local Builds

Desktop build (cross-platform style)

python build.py --name SafeModeSecurity --clean

Build + zip artifact

python build.py --name SafeModeSecurity --clean --zip

Build + zip + dmg (macOS)

python build.py --name SafeModeSecurity --clean --zip --dmg

macOS Scripted Build

Dedicated script:

  • scripts/release/build_macos_dist_dmg.sh

It builds app bundle via PyInstaller, creates DMG, and writes SHA256 sidecar.

Windows Build Notes

There is no standalone scripts/release/build_windows_exe.ps1 in current tree.

Windows artifacts are generated by:

  • build.py
  • CI workflows (release-build.yml and ci.yml build-installers job)

CI Release Pipelines

release-build.yml

  • Builds macOS + Windows artifacts.
  • Supports manual publish toggle.
  • Publishes release assets and checksum file.

release.yml (legacy overlap)

  • Also runs on tag push.
  • Overlaps with release-build intent.

Recommendation:

  • converge on a single release pipeline to reduce maintenance drift.

Release Checklist

  1. Run tests locally.
  2. Run docs strict build.
  3. Validate startup/certificate/proxy flow on target OS.
  4. Build artifacts and verify checksums.
  5. Publish tag and release notes.