#!/bin/sh # Smoke gate for all Void templates (ticket #28): lint, build, install # and version/import smoke for every template, one command, from a clean # checkout. Runs under podman, never Docker; no host Void install needed. # # Usage: packaging/void/smoke.sh # or: just void-smoke # # Builds every template under packaging/void/srcpkgs in dependency order # (leaves first, the app last — it resolves the others from the local # repository at install time) by delegating each package to build.sh, # which runs xlint, xbps-src, install and the payload/version/import # smoke in the pinned Void container. Fails fast naming the package; the # harness echoes each stage, so the output shows which package broke at # which stage. set -eu CDPATH="" HERE=$(dirname -- "$0") HERE=$(cd -- "$HERE" && pwd) # Dependency order: the app last. tests/test_void_smoke_gate.py fails if # this list drifts from packaging/void/srcpkgs or the app moves earlier. PKGS="python3-PyAudio python3-pynput python3-pywhispercpp voculinux" for PKG in $PKGS; do echo "== smoke $PKG" "$HERE/build.sh" "$PKG" || { echo "FAIL: $PKG (see the stage above: xlint, xbps-src, install, payload/version/import smoke)" >&2 exit 1 } echo "OK: $PKG linted, built, installed and smoked" done echo "SMOKE GATE PASSED: $PKGS"