Skip to content

Merge branch 'marc/debian-release-tests' into tmp/e2e-iso-bumps #18

Merge branch 'marc/debian-release-tests' into tmp/e2e-iso-bumps

Merge branch 'marc/debian-release-tests' into tmp/e2e-iso-bumps #18

Workflow file for this run

# Builds the unattended Debian ISO and installs it from UEFI USB media in QEMU.
# It completes the required reboots and verifies the installed DAppNode system.
name: Debian unattended USB ISO end-to-end
on:
workflow_dispatch:
pull_request:
push:
branches: [tmp/e2e-iso-bumps]
permissions:
contents: read
concurrency:
group: debian-iso-e2e-${{ github.ref }}
cancel-in-progress: true
jobs:
install:
name: Install Debian unattended ISO via UEFI USB
runs-on: ubuntu-latest
timeout-minutes: 180
steps:
- name: Checkout
uses: actions/checkout@v6
- name: Build Debian unattended ISO
run: |
export BASE_OS=debian
export UNATTENDED=true
docker compose up --build
ls -lrt images/Dappnode-debian-*.iso
- name: Install QEMU test dependencies
run: |
sudo apt-get update
sudo apt-get install -y --no-install-recommends qemu-system-x86 qemu-utils ovmf socat sshpass dnsmasq-base
if [ -e /dev/kvm ]; then
sudo chmod a+rw /dev/kvm
fi
- name: Create the guest network
run: |
mkdir -p test-output/debian-e2e
sudo E2E_NETWORK_STATE_DIR="${PWD}/test-output/debian-e2e/network" bash test/e2e_network.sh up
- name: Complete Debian unattended UEFI USB installation
env:
E2E_BOOT_MODE: usb
E2E_FIRMWARE: uefi
E2E_TAP_IFACE: dne2e0
run: |
debian_iso=$(find images -maxdepth 1 -type f -name 'Dappnode-debian-*-amd64-netinst.iso' -print -quit)
test -n "${debian_iso}"
bash test/e2e_debian_iso.sh "${debian_iso}"
- name: Make network logs readable
if: always()
run: sudo chmod -R a+rX test-output || true
- name: Upload installation logs
if: always()
uses: actions/upload-artifact@v4
with:
name: debian-unattended-usb-installation-logs
path: test-output/debian-e2e/
if-no-files-found: ignore
retention-days: 7