- 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).
26 lines
1.0 KiB
Bash
Executable File
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
|