#!/bin/sh # Copyright 2022 Jochen Sprickerhof # SPDX-License-Identifier: MIT # # apt install e2fsprogs genext2fs mmdebstrap openssh-client qemu-kvm set -x cleanup() { rm -f ssh_id ssh_id.pub upgrade } trap cleanup EXIT INT TERM QUIT cat > upgrade << "EOF" #!/bin/sh set -ex export DEBIAN_FRONTEND=noninteractive sed -i "s/\([^ ]*\) \([^ ]*\) [^ ]* \(.*\)/\1 \2 $1 \3/" /etc/apt/sources.list apt update apt dist-upgrade -y test "$1" = stretch && apt install libnss-resolve apt autoremove --purge -y apt clean poweroff EOF chmod +x upgrade ssh-keygen -f ssh_id -N '' debvm-create -k ssh_id.pub -r jessie -z 3 -- --customize-hook="copy-in upgrade /usr/local/bin" for RELEASE in stretch buster bullseye bookworm sid; do timeout 15m debvm-run -s 2222 & SSHOPT="-o ConnectTimeout=5 -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null" test "$RELEASE" = stretch && SSHOPT="${SSHOPT} -o PubkeyAcceptedKeyTypes=+ssh-rsa" tests/try-ssh.sh "$SSHOPT -i ssh_id -p 2222 root@localhost" "upgrade $RELEASE" wait done timeout 5m debvm-run -s 2222 & tests/try-ssh.sh "-o ConnectTimeout=5 -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null -i ssh_id -p 2222 root@localhost" poweroff wait