test/auto-install.sh: auto-fetch + reassemble chunked ISO from ci-latest
Workflow now publishes ISO as 1900M chunks. Test harness needs to: 1. gh release download --pattern '*.iso.part-*' 2. cat parts back into single ISO 3. verify sha256 of all parts If invoked with no ISO arg, auto-fetches from ci-latest release. Falls back to local ISO path if given as arg (existing behavior). Reassembled ISO lives at ~/veilor-iso/ci-latest/.
This commit is contained in:
parent
deef914064
commit
9921745c9d
1 changed files with 21 additions and 2 deletions
|
|
@ -88,8 +88,27 @@ preflight() {
|
||||||
|
|
||||||
ISO="${1:-}"
|
ISO="${1:-}"
|
||||||
if [[ -z $ISO ]]; then
|
if [[ -z $ISO ]]; then
|
||||||
echo "Usage: $0 <path-to-veilor-os.iso>" >&2
|
# Auto-fetch from ci-latest GH release if no path given. ISO is split
|
||||||
exit 2
|
# into chunks (GH release 2 GiB asset cap). Reassemble before boot.
|
||||||
|
log "no ISO path given — fetching from gh release ci-latest"
|
||||||
|
local dl_dir="$HOME/veilor-iso/ci-latest"
|
||||||
|
mkdir -p "$dl_dir"
|
||||||
|
( cd "$dl_dir" && rm -f *.part-* *.iso *.sha256 && \
|
||||||
|
gh release download ci-latest --repo veilor-org/veilor-os \
|
||||||
|
--pattern '*.iso.part-*' --pattern '*.parts.sha256' --clobber ) || {
|
||||||
|
echo "[ERR] gh release download failed — is the ci-latest release populated?" >&2
|
||||||
|
exit 2
|
||||||
|
}
|
||||||
|
( cd "$dl_dir" && \
|
||||||
|
local stem
|
||||||
|
stem=$(ls *.part-00 2>/dev/null | head -1 | sed 's/\.part-00$//')
|
||||||
|
[ -n "$stem" ] || { echo "[ERR] no .part-00 in download"; exit 2; }
|
||||||
|
log "reassembling $stem from $(ls "$stem".part-* | wc -l) parts"
|
||||||
|
cat "$stem".part-* > "$stem"
|
||||||
|
sha256sum -c *.parts.sha256 || { echo "[ERR] reassembly checksum mismatch"; exit 2; }
|
||||||
|
) || exit 2
|
||||||
|
ISO=$(ls "$dl_dir"/*.iso 2>/dev/null | head -1)
|
||||||
|
[ -n "$ISO" ] || { echo "[ERR] no iso after reassembly"; exit 2; }
|
||||||
fi
|
fi
|
||||||
if [[ ! -f $ISO ]]; then
|
if [[ ! -f $ISO ]]; then
|
||||||
echo "[ERR] ISO not found: $ISO" >&2
|
echo "[ERR] ISO not found: $ISO" >&2
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue