From 1d75a165c4b46cd8b049fbf7c5e5056e9032d4d3 Mon Sep 17 00:00:00 2001 From: Daniel Maksymilian Syrnicki Date: Sat, 18 Apr 2026 13:17:51 +0200 Subject: [PATCH] fix(ci): apk-install smoke prerequisites before running smoke-vm.sh MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The Forgejo runner container is Alpine with a near-empty base — no curl, python3, arp-scan, or sudo out of the box. scripts/smoke-vm.sh needs all four: - curl: every PVE API call - python3: JSON parsing of PVE responses - arp-scan: MAC→IP discovery on the LAN (live ISO has no guest agent) - sudo: so the same script also works from a dev laptop as non-root Without this step the smoke job fails immediately on "curl: not found", regardless of whether the PVE secrets are correctly set. Added to both build-iso.yml (inline smoke after ISO build) and smoke-latest.yml (workflow_dispatch retest path). Co-Authored-By: Claude Opus 4.7 (1M context) --- .forgejo/workflows/build-iso.yml | 7 +++++++ .forgejo/workflows/smoke-latest.yml | 6 ++++++ 2 files changed, 13 insertions(+) diff --git a/.forgejo/workflows/build-iso.yml b/.forgejo/workflows/build-iso.yml index 37b72cf..ab94870 100644 --- a/.forgejo/workflows/build-iso.yml +++ b/.forgejo/workflows/build-iso.yml @@ -62,6 +62,13 @@ jobs: cp -f "$iso" /data/smoke-cache/latest.iso ls -lh /data/smoke-cache/latest.iso + - name: Install smoke prerequisites + # Runner container is Alpine with a near-empty base; smoke-vm.sh + # needs curl, python3, arp-scan, and sudo (kept so the script + # also works when invoked from a dev laptop as a non-root user). + # apk cache survives across jobs so subsequent runs are ~1 s. + run: apk add --no-cache curl python3 arp-scan sudo + - name: Smoke-test ISO on Proxmox test host # Inlined as a step (rather than a separate job with `needs:`) so # we can reuse the ISO that's already in the workspace — Forgejo's diff --git a/.forgejo/workflows/smoke-latest.yml b/.forgejo/workflows/smoke-latest.yml index b4a7e18..90968d6 100644 --- a/.forgejo/workflows/smoke-latest.yml +++ b/.forgejo/workflows/smoke-latest.yml @@ -33,6 +33,12 @@ jobs: echo "Will smoke: $iso" ls -lh "$iso" + - name: Install smoke prerequisites + # Runner container is Alpine with a near-empty base; smoke-vm.sh + # needs curl, python3, arp-scan, and sudo (kept so the script + # also works when invoked from a dev laptop as a non-root user). + run: apk add --no-cache curl python3 arp-scan sudo + - name: Smoke-test ISO on Proxmox test host env: PVE_TEST_HOST: ${{ secrets.PVE_TEST_HOST }}