Commit Graph

5 Commits

Author SHA1 Message Date
justin 26a8f1a24c CI(windows): use embeddable Python (no MSI) — installer hit error 1603
Build binaries / macos (push) Successful in 43s
Build binaries / windows (push) Failing after 1m20s
Build binaries / linux-amd64 (push) Successful in 1m27s
Build binaries / linux-arm64 (push) Successful in 1m49s
The python.org MSI returns 1603 on this runner (half-registered state from
prior install attempts). Switch to the embeddable zip + get-pip: no MSI, no
admin, no registry — self-contained in LOCALAPPDATA. Falls through to a
pre-installed python if the runner already has one.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_016yT89n4zR4qbrySoSiEyZs
2026-06-30 16:28:00 -04:00
justin 18ab3ef97e CI(windows): install Python to explicit TargetDir + log exit code
Build binaries / macos (push) Successful in 43s
Build binaries / windows (push) Failing after 55s
Build binaries / linux-amd64 (push) Successful in 1m25s
Build binaries / linux-arm64 (push) Successful in 1m50s
Per-user install landed somewhere my candidate-path check missed. Force the
install dir (LOCALAPPDATA\Python312) so python.exe is found deterministically.
(Linux/mac/arm64 builds succeeded; they only failed re-uploading to an existing
release -- softprops' asset-delete 404s on Gitea. A fresh release avoids that.)

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_016yT89n4zR4qbrySoSiEyZs
2026-06-30 16:24:00 -04:00
justin 43dd739e3c CI(windows): per-user Python install + robust python.exe path lookup
Build binaries / macos (push) Failing after 43s
Build binaries / windows (push) Failing after 1m19s
Build binaries / linux-amd64 (push) Failing after 1m47s
Build binaries / linux-arm64 (push) Failing after 1m46s
The installer's InstallAllUsers=1 needs admin (runner service isn't elevated)
so Python landed in the per-user LOCALAPPDATA dir, not C:\Program Files; the
hardcoded PATH prepend missed it -> 'python not recognized'. Switch to a
per-user install and locate python.exe across the known dirs.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_016yT89n4zR4qbrySoSiEyZs
2026-06-30 16:20:02 -04:00
justin 0cc83884a5 CI: self-install Python on Windows; build Linux/arm64 in python+node container
Build binaries / macos (push) Successful in 44s
Build binaries / windows (push) Failing after 1m36s
Build binaries / linux-amd64 (push) Successful in 2m7s
Build binaries / linux-arm64 (push) Successful in 2m12s
First v0.1.0 run: Windows + Linux + arm64 failed (no Python on those runners;
the docker default image also lacks Python). macOS succeeded.
- windows: install Python 3.12 via the official installer in-job (idempotent).
- linux-amd64 / linux-arm64: run in nikolaik/python-nodejs:python3.12-nodejs20
  (has python+pip AND node for actions/checkout; multi-arch covers the Pi).
- macOS job unchanged (it worked).

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_016yT89n4zR4qbrySoSiEyZs
2026-06-30 16:13:47 -04:00
justin 58305cded4 CI: build cross-platform binaries + tagged release
Build binaries / linux-amd64 (push) Failing after 31s
Build binaries / linux-arm64 (push) Failing after 59s
Build binaries / macos (push) Successful in 1m9s
Build binaries / windows (push) Failing after 3m0s
.gitea/workflows/release.yml builds the PySide6 GUI with PyInstaller on each
self-hosted runner and, on a v* tag, publishes a Gitea Release with every
platform binary attached:
- windows-latest  -> OBDash-windows.exe   (onefile, --windowed)
- self-hosted-mac -> OBDash-macos.zip     (.app bundle, ditto-zipped)
- docker (linux)  -> OBDash-linux-x86_64  (onefile + patchelf/GL libs)
- arm64 (Pi)      -> OBDash-linux-aarch64
Uses softprops/action-gh-release with the auto GITEA_TOKEN; manual dispatch
build-only (no release).

profiles/ is bundled via --add-data; obdcore.profile.profiles_dir() now
resolves sys._MEIPASS when frozen so the binary finds its vehicle profiles.

Validated locally on Linux: PyInstaller onefile builds (88MB), launches
offscreen, and loads bundled profiles (6 found). Build artifacts gitignored.
Added .claude/gitea-ship.json.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_016yT89n4zR4qbrySoSiEyZs
2026-06-30 16:04:56 -04:00