From ea105b2a883265c0615c2275d00de1c90ae4a4e4 Mon Sep 17 00:00:00 2001 From: Craig Jennings Date: Mon, 19 Jan 2026 13:16:33 -0600 Subject: Add comprehensive installation tests and ZFS script deployment - Add scripts/full-test.sh for automated install testing (single, mirror, raidz1) - Add --full-test option to build-release workflow - Install zfssnapshot and zfsrollback to target system during install - Simplify .gitignore to exclude entire vm/ directory --- scripts/build-release | 28 +++++++++++++++++++++++----- 1 file changed, 23 insertions(+), 5 deletions(-) (limited to 'scripts/build-release') diff --git a/scripts/build-release b/scripts/build-release index 00f66ce..1c0ef48 100755 --- a/scripts/build-release +++ b/scripts/build-release @@ -2,9 +2,10 @@ # build-release - Build and distribute the archzfs ISO # # Usage: -# ./scripts/build-release # Full build, test, and distribute +# ./scripts/build-release # Full build, sanity test, and distribute +# ./scripts/build-release --full-test # Full build with comprehensive install tests # ./scripts/build-release --skip-build # Skip build, just distribute existing ISO -# ./scripts/build-release --skip-test # Skip sanity test +# ./scripts/build-release --skip-test # Skip all testing # # Distribution targets: # - ~/Downloads/isos (always) @@ -46,18 +47,21 @@ step() { echo -e "\n${CYAN}=== $1 ===${NC}\n"; } # Parse arguments SKIP_BUILD=false SKIP_TEST=false +FULL_TEST=false AUTO_CONFIRM=false while [[ $# -gt 0 ]]; do case $1 in --skip-build) SKIP_BUILD=true; shift ;; --skip-test) SKIP_TEST=true; shift ;; + --full-test) FULL_TEST=true; shift ;; --yes|-y) AUTO_CONFIRM=true; shift ;; -h|--help) - echo "Usage: $0 [--skip-build] [--skip-test] [--yes]" + echo "Usage: $0 [--skip-build] [--skip-test] [--full-test] [--yes]" echo "" echo "Options:" echo " --skip-build Skip ISO build, distribute existing ISO" echo " --skip-test Skip QEMU sanity test" + echo " --full-test Run comprehensive install tests (single, mirror, raidz1)" echo " --yes, -y Auto-confirm dd to ARCHZFS drive (no prompt)" exit 0 ;; @@ -106,6 +110,18 @@ sanity_test() { info "Sanity test passed!" } +# Run full installation tests (automated) +full_test() { + step "Full Installation Tests" + + if ! "$SCRIPT_DIR/full-test.sh"; then + error "Full installation test failed!" + exit 1 + fi + + info "All installation tests passed!" +} + # Find ARCHZFS labeled USB drive find_archzfs_drive() { ARCHZFS_DEV=$(blkid -L ARCHZFS 2>/dev/null | head -1) @@ -342,10 +358,12 @@ main() { build_iso fi - if ! $SKIP_TEST; then + if $FULL_TEST; then + full_test + elif ! $SKIP_TEST; then sanity_test else - step "Skipping Sanity Test" + step "Skipping Tests" fi distribute_local -- cgit v1.2.3