build: wire desktop-bundle pipeline (CI matrix + per-platform installers)
Stand up the seamless-download path for non-technical buyers:
* .github/workflows/build.yml — matrix CI (mac/win/linux) that builds
PyInstaller bundles and packages them per platform on tag push,
attaching the resulting installers to a GitHub Release.
* build/installer.iss — Inno Setup script for the Windows installer
(per-user install, optional desktop shortcut, runs on finish).
* build/macos/build_dmg.sh — wraps DataTools.app into a .dmg with a
drag-to-/Applications layout.
* build/appimage/{AppRun,datatools.desktop,build.sh} — AppImage recipe.
* src/__init__.py — single source of truth for __version__; the spec
reads it (was hardcoded), CI passes it through to all packagers.
Buyer download path now lives in the top-level README. Per-build
README documents the Phase 2 step (signing/notarization) that needs
the owner's Apple Developer + Windows code-signing credentials —
those are intentionally not in CI yet because they require setup
outside this repo.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
49
build/installer.iss
Normal file
49
build/installer.iss
Normal file
@@ -0,0 +1,49 @@
|
||||
; Inno Setup script for DataTools — Windows installer.
|
||||
;
|
||||
; Compile from the repo root:
|
||||
; iscc /DAppVersion=1.0.0 build\installer.iss
|
||||
;
|
||||
; CI passes the version via /DAppVersion to keep src/__init__.py the
|
||||
; single source of truth. Local manual builds: pass /DAppVersion or
|
||||
; let the default kick in.
|
||||
|
||||
#ifndef AppVersion
|
||||
#define AppVersion "0.0.0-dev"
|
||||
#endif
|
||||
|
||||
[Setup]
|
||||
AppId={{D4A07001-DA7A-4001-8001-DA7A70013700}}
|
||||
AppName=DataTools
|
||||
AppVersion={#AppVersion}
|
||||
AppVerName=DataTools {#AppVersion}
|
||||
AppPublisher=DataTools
|
||||
AppPublisherURL=https://datatools.app
|
||||
DefaultDirName={autopf}\DataTools
|
||||
DefaultGroupName=DataTools
|
||||
DisableProgramGroupPage=yes
|
||||
OutputDir=..\dist
|
||||
OutputBaseFilename=DataTools-{#AppVersion}-win-setup
|
||||
Compression=lzma2/max
|
||||
SolidCompression=yes
|
||||
WizardStyle=modern
|
||||
ArchitecturesInstallIn64BitMode=x64
|
||||
PrivilegesRequired=lowest
|
||||
PrivilegesRequiredOverridesAllowed=dialog
|
||||
; Allow per-user install (no UAC prompt) when admin isn't available.
|
||||
|
||||
[Languages]
|
||||
Name: "english"; MessagesFile: "compiler:Default.isl"
|
||||
|
||||
[Tasks]
|
||||
Name: "desktopicon"; Description: "Create a &desktop shortcut"; GroupDescription: "Additional shortcuts:"
|
||||
|
||||
[Files]
|
||||
Source: "..\dist\DataTools\*"; DestDir: "{app}"; Flags: recursesubdirs ignoreversion
|
||||
|
||||
[Icons]
|
||||
Name: "{group}\DataTools"; Filename: "{app}\DataTools.exe"
|
||||
Name: "{group}\Uninstall DataTools"; Filename: "{uninstallexe}"
|
||||
Name: "{autodesktop}\DataTools"; Filename: "{app}\DataTools.exe"; Tasks: desktopicon
|
||||
|
||||
[Run]
|
||||
Filename: "{app}\DataTools.exe"; Description: "Launch DataTools"; Flags: nowait postinstall skipifsilent
|
||||
Reference in New Issue
Block a user