Skip to main content

Build scripts reference

Quick reference for the three scripts in this repo. For step-by-step guides see Full build, Local Mac test, and Signing Windows assets.

build-all.sh

Builds all platform media from DeepPhe-and-Launcher.install4j into build/deepphe-installer/. Signs the media by default.

./build-all.sh [options]
OptionEffect
--signAfter building, run ./sign-windows-assets.sh
--mac-signing-onlySign/notarize only macOS installer media; build Windows/Linux media unsigned
--no-installer-signingPass --disable-signing --disable-notarization to install4jc
--publishUpload built installer media to a GitHub release
--publish-tag TAGOverride the release tag used by --publish
--publish-repo OWNER/REPOOverride the repository used by --publish
--cleanDelete the build output directory first
--release VERSIONOverride the application version
--fasterDisable LZMA/Pack200 compression
--testDry run (install4jc --test)
-v, --verboseVerbose install4jc output
-h, --helpShow help

Environment: INSTALL4JC, DIST_REPO, MAC_MEDIA_ID, NON_MAC_MEDIA_IDS, WIN_KEYSTORE_PASSWORD, MAC_KEYSTORE_PASSWORD, APPLE_ID_PASSWORD, INSTALL4JC_ARGS.

build-mac-local.sh

Builds only the macOS media (id 484), unsigned, and runs it.

./build-mac-local.sh [options]
OptionEffect
--cleanDelete build/deepphe-installer first
--release VERSIONOverride the application version
--fasterDisable LZMA/Pack200 compression
--testDry run; compile but don't copy the final artifact
--no-runBuild the DMG but don't open it
--mount-onlyOpen the DMG in Finder, don't launch the installer
-v, --verboseVerbose install4j output
-h, --helpShow help

Environment: INSTALL4JC, MAC_MEDIA_ID (default 484), INSTALL4JC_ARGS.

sign-windows-assets.sh

Authenticode-signs the Windows .exe payloads on the DeepPhe-Dist releases with a YubiKey (jsign) and re-uploads them in place. Takes no arguments.

./sign-windows-assets.sh

Prerequisites: brew install jsign osslsigncode; YubiKey PIN stored in the macOS keychain under service yubikey-piv-pin; gh authenticated to the DeepPhe/DeepPhe-Dist repo. See details.

install4jc auto-detection

Both build scripts resolve the compiler in this priority order and prefer the highest version:

  1. $INSTALL4JC
  2. install4jc on PATH
  3. /Applications/install4j*.app/Contents/Resources/app/bin/install4jc
  4. /opt/install4j/bin/install4jc

Notes

  • All scripts cd to the repo root first, so install4j's relative paths (mediaDir, keys, icons) resolve regardless of where you invoke them.
  • The scripts are written for bash on macOS/Linux and guard against bash 3.2 (the macOS default) quirks with empty arrays under set -u.