48 Commits

Author SHA1 Message Date
Brandon T. Kowalski 18af2b9b03 fix: rename MinUI distribution folder to Grout.pak
MinUI expects .pak naming convention for tools. Updated packaging,
CI zip creation, and updater launch script path.
2026-03-28 16:40:08 -04:00
Brandon T. Kowalski c84314203c ci: enable RELEASE_PAT for versions.json push to trigger docs deploy 2026-03-28 16:29:00 -04:00
Brandon T. Kowalski 04ef4e76cc docs: add MinUI install guide and opt into Node.js 24 for CI
Add install-minui.md with tested devices, installation steps, and
update instructions. Add MinUI to mkdocs nav and cfw-links. Set
FORCE_JAVASCRIPT_ACTIONS_TO_NODE24 on both workflows ahead of the
June 2026 deprecation of Node.js 20 runners.
2026-03-28 10:07:08 -04:00
Brandon T. Kowalski 1dd687ce73 feat: universal MinUI distribution with per-device input mappings
Ship both grout32 and grout64 in a single MinUI zip. The launch
script detects arch via uname and picks the right binary and libs.
Device detection (Miyoo/Anbernic/TrimUI) uses runtime.GOARCH and
/proc/bus/input/devices, following the same pattern as muOS. Adds
Anbernic joystick mapping reused from muOS.
2026-03-28 09:49:03 -04:00
Brandon T. Kowalski 7104be02c9 fix: clean up Spruce universal distribution
Fix unmapped devices (TrimUI, Miyoo Flip) returning errors instead of
nil. Uppercase device constants to match env var values. Add fallback
case to launch script. Fix artifact download paths in CI universal
packaging job. Remove debug comments and cosmetic issues.
2026-03-28 09:40:19 -04:00
pawndev 4055d54359 ci: package universal 2026-03-28 11:48:38 +01:00
pawndev bb51447e81 ci: add package-arm-universal job 2026-03-28 11:35:51 +01:00
Brandon T. Kowalski 2ff66ae912 chore: update release workflow for restructured tasks 2026-03-28 00:39:35 -04:00
Brandon T. Kowalski 1fd3b9ef9d chore: rename tasks with arch, add Onion quirks, improve auth logging
Rename build/extract tasks to include architecture (build-arm64,
build-arm32, etc.) for clarity. Add Onion CFW quirks to docs.
Reorganize auth.go and add response debug logging for connection
validation and login failures. Use RELEASE_PAT for versions.json push.
2026-03-27 20:10:53 -04:00
Brandon T. Kowalski ad2c569552 ci: I will figure this out even if it kills me. 2026-03-26 21:47:30 -04:00
Brandon T. Kowalski fb72913319 fix: use glob patterns for release assets
upload-artifact@v4 strips common path prefixes, so artifacts from
single-directory uploads (arm32, amd64, x86) lose their dist/ prefix.
Use ** globs in the release step and find in the versions job to
locate files regardless of path.
2026-03-26 21:16:01 -04:00
Brandon T. Kowalski b47eb667cf fix: use workflow_call to trigger docs deploy after release
GITHUB_TOKEN cannot dispatch workflows via the API. Use workflow_call
instead so the release workflow invokes the docs workflow directly.
2026-03-26 20:42:04 -04:00
Brandon T. Kowalski 2ee10774a0 fix: inject version from CI instead of reading pak.json
Pass GROUT_VERSION build arg from the release workflow into Docker
builds so beta releases get the correct version number. Falls back
to pak.json for local dev builds when the arg is not set.
2026-03-26 20:27:53 -04:00
Brandon T. Kowalski 24cf4b0fe2 chore: remove arch-specific binaries from release and trigger docs deploy
Only keep the legacy "grout" binary for backwards compatibility with
pre-v4.8.0.0 clients. The new updater uses distribution zips. Also
trigger the docs workflow after updating versions.json since
GITHUB_TOKEN pushes don't trigger other workflows.
2026-03-26 20:15:45 -04:00
Brandon T. Kowalski 60f055ebac fix: data race in auto-update and add versions.json CI job
Use atomic.Pointer for updateInfo and a mutex for releaseChannel to
eliminate a data race between the background check goroutine and the
UI thread. Add update-versions job to the release workflow that hashes
build artifacts, verifies uploaded assets match, and commits the
versions.json with all distribution zip metadata.
2026-03-26 19:40:32 -04:00
Brandon T. Kowalski f2a9737e7e fix: data race in auto-update and add versions.json CI job
Use atomic.Pointer for updateInfo and a mutex for releaseChannel to
eliminate a data race between the background check goroutine and the
UI thread. Add update-versions job to the release workflow that hashes
build artifacts, verifies uploaded assets match, and commits the
versions.json with all distribution zip metadata.
2026-03-26 18:49:09 -04:00
Brandon T. Kowalski abbb1bbf04 feat: add MinUI build 2026-03-25 21:16:44 -04:00
Brandon T. Kowalski 6bcea38fc3 fix: include legacy "grout" binary for backwards-compatible updates
Older versions of the updater look for a bare "grout" asset.
Upload the arm64 binary under both names so existing installs
can still update to this release.
2026-03-24 21:32:45 -04:00
Brandon T. Kowalski bd9edb956a feat: add x86 Batocera build and parallelize release workflow
- Add build-x86, extract-x86, and package-batocera-x86 tasks
- Add x86 (386) to updater asset name resolution
- Split release workflow into parallel jobs per architecture:
  build-arm64, build-amd64, build-x86, build-arm32
- Each job uploads artifacts, final release job collects and publishes
- Release now ships grout-arm64, grout-amd64, grout-x86, grout-arm32
  and Batocera zips for arm64, amd64, and x86
2026-03-24 20:11:08 -04:00
Brandon T. Kowalski 0e5255b8aa refactor: use runtime.GOARCH for all update asset names
Instead of hardcoding asset names per-CFW, derive them from the
compiled architecture. Release now uploads grout-arm64, grout-amd64,
and grout-arm32 instead of a bare "grout" binary.
2026-03-24 20:04:25 -04:00
Brandon T. Kowalski 0d8a4fdc31 feat: add AMD64/x86_64 Batocera build support
Batocera runs on both ARM64 and x86_64 PCs. The release was only
shipping an ARM64 binary, causing "Exec format error" on x86_64.

- Add package-batocera-amd64 task and build AMD64 in release workflow
- Ship separate Grout-Batocera-arm64.zip and Grout-Batocera-amd64.zip
- Upload grout-amd64 standalone binary for the in-app updater
- Use runtime.GOARCH in updater to download correct binary for arch
2026-03-24 20:00:42 -04:00
Brandon T. Kowalski bc4ed1b972 feat: support ARM32 binary updates for Allium and Onion
Upload the ARM32 binary as grout-arm32 alongside the ARM64 grout binary.
GetAssetName now returns grout-arm32 for Allium and Onion so the in-app
updater downloads the correct architecture binary.
2026-03-22 22:06:20 -04:00
Brandon T. Kowalski 705c8f9a8d fix: add QEMU setup for ARM32 cross-build and --load flag to build-32 tasks 2026-03-21 22:54:39 -04:00
Brandon T. Kowalski 4ec1cd4ff7 ci: add Allium and Onion 32-bit builds to release workflow 2026-03-21 22:19:47 -04:00
Brandon T. Kowalski 63fd02f8fb build: move packaging output to dist/, vendor Miyoo libs, add app icons
- Package tasks now output to dist/ instead of build64/, keeping build
  folders for raw binaries/libs only
- Release workflow updated to reference dist/ for zip creation and uploads
- Allium and Onion now copy libs from vendored/miyoo/ instead of the
  build container
- Add app icons for Allium and Onion
- Update Spruce and Trimui config descriptions
2026-03-21 21:20:10 -04:00
Brandon T. Kowalski 2e9380c8d7 ci: add manual dispatch to docs action 2026-03-14 19:36:38 -04:00
Brandon T. Kowalski 16e512fc61 fix: batocera packaging for amd64 2026-03-14 19:08:51 -04:00
Jordan Davidson d282760468 feat(os): Batocera support 2026-03-11 22:00:45 -06:00
Brandon T. Kowalski 268fed4a1b Fix packaging scripts. 2026-02-25 22:07:48 -05:00
malkavi 1a0779be2d add referene to Trimui package 2026-02-09 15:21:40 +01:00
Brandon T. Kowalski 6bc15e090f mkdocs initial intro 2026-02-08 22:50:18 -05:00
malkavi 4efeb85bf2 initial trimui support WIP 2026-02-03 09:41:25 +01:00
Brandon T. Kowalski 452cd170f3 Trim version number when action is kicked off 2026-01-27 02:05:29 -05:00
Brandon T. Kowalski e6e7b1df41 Preliminary ROCKNIX support for #96 2026-01-26 22:56:44 -05:00
Brandon T. Kowalski 54860c6ccb Update to support four value "semver" 2026-01-18 23:19:11 -05:00
Brandon T. Kowalski 454760b367 Attempt to fix timeout issues in #52 2026-01-03 08:25:02 -05:00
Coquelet Christophe 6c0003fddf ci: Change spruce distribution to zip format 2026-01-01 18:47:15 +01:00
Brandon T. Kowalski 50586db5d9 Update with new Spruce info. 2026-01-01 12:33:04 -05:00
Brandon T. Kowalski 1be3a3c02a Merge pull request #45 from pawndev/feat/spruce-support
feat(spruce): Init the support of spruce
2026-01-01 12:16:17 -05:00
pawndev e059aa40af feat(spruce): Init the support of spruce 2026-01-01 15:24:18 +01:00
Brandon T. Kowalski afd7c02637 More work on auto update and more performant caching 2025-12-30 00:21:49 -05:00
Brandon T. Kowalski 16d8045520 Update GH action for betas 2025-12-27 21:26:01 -05:00
Brandon T. Kowalski 1ea69a15d9 Add Knulli to GH Action and update preview webp 2025-12-26 18:08:27 -05:00
Brandon T. Kowalski ee52cef125 Add beta release workflow for dev branch
🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-25 15:03:34 -05:00
Brandon T. Kowalski 5516488406 Fix packaging of NextUI Pak 2025-12-09 20:58:43 -05:00
Brandon T. Kowalski 2a4cc0b5ad Prep for release 2025-12-09 20:26:34 -05:00
Brandon T. Kowalski 4a8ab96386 Update GH Workflow, fix m3u naming, add preview webp 2025-12-09 17:18:18 -05:00
Brandon T. Kowalski 67ace90be1 Starting fresh. 2025-11-17 19:29:18 -05:00