From 5df64c76d386fd2de863d21a2b1269d53e1a39f9 Mon Sep 17 00:00:00 2001 From: Craig Jennings Date: Thu, 12 Feb 2026 12:06:33 -0600 Subject: fix: archzfs key prompt hang, test false positive, add local distribution - Change archzfs SigLevel to Never (pacstrap -K empty keyring caused interactive GPG prompt blocking unattended installs) - Fix pgrep matching avahi-daemon's [archangel.local] in full-test.sh - Bump install timeout to 30min for DKMS builds - Add ~/downloads/isos and archsetup inbox to build-release distribution - Sync templates --- scripts/build-release | 36 +++++++++++++++++++++++++++++++----- scripts/full-test.sh | 6 ++++-- 2 files changed, 35 insertions(+), 7 deletions(-) (limited to 'scripts') diff --git a/scripts/build-release b/scripts/build-release index ef0c96f..83f34b9 100755 --- a/scripts/build-release +++ b/scripts/build-release @@ -8,6 +8,8 @@ # ./scripts/build-release --skip-test # Skip all testing # # Distribution targets: +# - ~/downloads/isos/ +# - ~/code/archsetup/inbox/ (notification for test VM rebuild) # - truenas.local:/mnt/vault/isos (if reachable) set -e @@ -27,6 +29,8 @@ fi # Distribution targets TRUENAS_HOST="truenas.local" TRUENAS_PATH="/mnt/vault/isos" +LOCAL_ISO_DIR="$REAL_HOME/downloads/isos" +ARCHSETUP_INBOX="$REAL_HOME/code/archsetup/inbox" # Colors RED='\033[0;31m' @@ -64,6 +68,7 @@ done # Distribution status tracking TRUENAS_SUCCESS=false +LOCAL_SUCCESS=false # Check root for build check_root() { @@ -143,16 +148,36 @@ distribute_truenas() { fi } +# Distribute locally +distribute_local() { + step "Distributing Locally" + + mkdir -p "$LOCAL_ISO_DIR" + info "Copying to $LOCAL_ISO_DIR/" + cp "$ISO_FILE" "$LOCAL_ISO_DIR/" + info "Done: $LOCAL_ISO_DIR/$ISO_NAME" + LOCAL_SUCCESS=true + + # Notify archsetup project that a new ISO is available + if [[ -d "$ARCHSETUP_INBOX" ]]; then + cat > "$ARCHSETUP_INBOX/rebuild-test-vm.txt" << EOF +New archangel ISO available: $ISO_NAME +Location: ~/downloads/isos/ +Rebuild the base test VM from this ISO to pick up the new kernel. +EOF + info "Notified archsetup inbox" + fi +} + # Summary show_summary() { step "Distribution Complete" echo "ISO: $ISO_NAME" echo "" - if $TRUENAS_SUCCESS; then - echo "Distributed to: $TRUENAS_HOST:$TRUENAS_PATH/" - else - echo "TrueNAS not reachable - ISO only in out/" - fi + echo "Distributed to:" + $LOCAL_SUCCESS && echo " - $LOCAL_ISO_DIR/" + $TRUENAS_SUCCESS && echo " - $TRUENAS_HOST:$TRUENAS_PATH/" + $TRUENAS_SUCCESS || echo " - TrueNAS ($TRUENAS_HOST) not reachable, skipped" } # Main @@ -174,6 +199,7 @@ main() { step "Skipping Tests" fi + distribute_local distribute_truenas show_summary diff --git a/scripts/full-test.sh b/scripts/full-test.sh index 9276bab..fe164d1 100755 --- a/scripts/full-test.sh +++ b/scripts/full-test.sh @@ -47,7 +47,7 @@ SSH_OPTS="-o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null -o LogLeve # Timeouts SSH_TIMEOUT=180 # Wait for SSH on live ISO -INSTALL_TIMEOUT=900 # 15 minutes for installation +INSTALL_TIMEOUT=1800 # 30 minutes for installation (DKMS builds ZFS from source) BOOT_TIMEOUT=120 # Wait for installed system to boot # Colors @@ -354,7 +354,9 @@ CONF" ((elapsed += check_interval)) # Check if install process is still running - if ! ssh_cmd "pgrep -f 'archangel' > /dev/null" 2>/dev/null; then + # Match full path to avoid false positive from avahi-daemon's + # "running [archangel.local]" status string + if ! ssh_cmd "pgrep -f '/usr/local/bin/archangel' > /dev/null" 2>/dev/null; then # Process finished - check result by looking for success indicators local exit_check=$(ssh_cmd "tail -30 /tmp/install.log" 2>/dev/null) # Check for various success indicators -- cgit v1.2.3