| id | howto-package-test-builds | ||||
|---|---|---|---|---|---|
| type | how-to | ||||
| status | draft | ||||
| tags |
|
Build portable test bundles for Linux, macOS, and Windows from this repo (no Docker required).
This is for tester handoff and local validation of:
iptv-tunerr run/serveiptv-tunerr supervise -config ...(single app / many DVR children)
Platform support (important):
- Linux: core tuner paths + HDHR network mode + VODFS mount
- macOS: core tuner paths + HDHR network mode; no VODFS mount (Linux-only)
- Windows: core tuner paths + HDHR network mode; no VODFS mount (Linux-only)
- Go toolchain installed
zip,tar,sha256sumavailable- repo checked out and builds locally
chmod +x ./scripts/build-test-packages.sh
./scripts/build-test-packages.shOutput goes to:
dist/test-packages/<version>/Artifacts include:
- platform archives (
.tar.gz/.zip) SHA256SUMS.txt
Default targets:
linux/amd64linux/arm64linux/arm/v7darwin/amd64darwin/arm64windows/amd64windows/arm64
PLATFORMS="linux/amd64 linux/arm64 darwin/arm64 windows/amd64" \
./scripts/build-test-packages.shVERSION=v0.0.0-test1 ./scripts/build-test-packages.shBuild packages and stage a tester-ready directory with checksums, manifest, examples, and docs:
chmod +x ./scripts/build-tester-release.sh
./scripts/build-tester-release.shOutput:
dist/test-releases/<version>/Includes:
packages/(archives +SHA256SUMS.txt)examples/(supervisor JSON/YAML examples)docs/(packaging + config references)manifest.json(machine-readable package inventory and feature limits)TESTER-README.txt(quick handoff note)
GitHub Actions workflow:
.github/workflows/tester-bundles.yml
Triggers:
- manual (
workflow_dispatch) - tag push (
v*)
Behavior:
- Always uploads the staged tester bundle as a workflow artifact (
tester-bundle-<version>) - On tag pushes (
v*), also packs the staged bundle directory and uploads it to the GitHub Release as a.tar.gzasset
Related release automation:
.github/workflows/release.yml- creates the GitHub Release on every
v*tag push - uses
scripts/generate-release-notes.shinstead of GitHub auto-notes - publishes binary assets for
linux/amd64,linux/arm64,linux/arm/v7,darwin/amd64,darwin/arm64,windows/amd64, andwindows/arm64 - release notes prefer the matching
docs/CHANGELOG.mdtag section, thenUnreleased, then fall back to the exact commit range for the tag
- creates the GitHub Release on every
.github/workflows/docker.yml- pushes GHCR/Docker Hub multi-arch images (
linux/amd64,linux/arm64,linux/arm/v7) - publishes versioned image tags on
v*pushes - publishes
latestonmain - also emits
sha-*tags for traceability
- pushes GHCR/Docker Hub multi-arch images (
Use a version tag (for example v0.1.0-test1) to produce both:
- versioned GHCR image tags
- tester bundle GitHub Release asset
Example:
git tag v0.1.0-test1
git push origin v0.1.0-test1Expected outputs after workflows finish:
- GitHub Release
v0.1.0-test1with tester bundle.tar.gzasset - Actions artifact
tester-bundle-v0.1.0-test1 - GHCR image tags including
v0.1.0-test1andsha-<commit>
iptv-tunerrbinary (iptv-tunerr.exeon Windows)README.mddocs/how-to/deployment.mddocs/how-to/package-test-builds.mddocs/reference/testing-and-supervisor-config.md
- Unpack the archive.
- Run:
./iptv-tunerr run -mode=easy- Verify sample child endpoints:
curl -s http://127.0.0.1:5004/discover.json
curl -s http://127.0.0.1:5102/lineup.json | jq 'length'cd dist/test-packages/<version>
sha256sum -c SHA256SUMS.txt- The built-in Plex stale-session reaper is in the Go binary (no Python required).
- Windows/macOS test bundles support core tuner/supervisor validation.
VODFSmount remains Linux-only.