Files
voculinux/packaging/void/smoke.sh
T
xavierk 80fb4365bd test(void): guard the tag-built release path offline
- build-release.sh: POSIX-only checks (dash runs the release), a release form
  is exactly X.Y.Z or X.Y.Z-alpha|beta|rcN, and the install smoke refuses a
  package that has no smoke recipe.
- Tests: names and tag gate (exact match, committed template must agree), key
  refusals before any container starts (fake podman records calls), the
  render script pins only the build tree, podman wiring (only the sign phase
  sees the key, and it has no network), the xbps ordering of pre-release
  spellings, the workflow gates, tmpfs key staging, and the publish set
  (sdist, packages, signatures, repodata, client key).
2026-11-06 20:16:46 +05:30

26 lines
1.0 KiB
Bash
Executable File

#!/bin/sh
# Smoke gate for all Void templates (ticket #28): one command builds every
# template in dependency order, signs the result with a throwaway key, installs
# voculinux from that repository in a clean Void image and smokes it. The gate
# runs the same code path as a release (packaging/void/build-release.sh), so a
# gate that passes is a release that would build.
#
# Usage: packaging/void/smoke.sh
# or: just void-smoke
#
# Podman only, never Docker. Nothing is published, and the release key is not
# used. Needs the same tools as a release: podman, openssl, git, python3.11,
# and uv 0.12.x or 0.13.x (see packaging/void/README.md).
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.
# shellcheck disable=SC2034 # read as data by build-release.sh, which parses this line
PKGS="python3-PyAudio python3-pynput python3-pywhispercpp voculinux"
exec "$HERE/build-release.sh" smoke