ci: install kmod (depmod) before microVM image build (e2e + nightly + ddil) (#307)

* ci(e2e): install kmod (depmod) before microVM image build

#305 made depmod a hard requirement in build-microvm-image.sh, but the
self-hosted ci-single/ci-multi runners don't ship the kmod package, so the
Build Install Artifacts step aborts with 'required tool not found: depmod'
before any E2E suite runs. Add an idempotent kmod install ahead of each
Build Install Artifacts step (single/multi/eks jobs); the gold-image builder
bakes kmod in too, so this no-ops once runners pick up the new image.

* ci: install kmod (depmod) in nightly + ddil too

e2e-nightly and e2e-ddil call the same build-install-artifacts.sh (-> make
build-microvm-image) on the same self-hosted ci-single/ci-multi runners as
e2e.yml, so they hit the identical 'depmod not found' abort. Add the same
idempotent kmod guard before Build Install Artifacts in both.

release distro builds run on GitHub-hosted ubuntu (kmod present); e2e-baremetal
runs on ci-baremetal which already has it (green today) — neither needs the
guard.
This commit is contained in:
Josh Siviour
2026-06-07 21:57:03 +10:00
committed by GitHub
parent 527308c342
commit 8e0edef7c2
3 changed files with 41 additions and 0 deletions
+8
View File
@@ -76,6 +76,14 @@ jobs:
echo "${BIN_DIR}" >> "${GITHUB_PATH}"
"${BIN_DIR}/gotestsum" --version
- name: Install kmod (depmod)
# build-microvm-image's mandatory-tool preflight requires depmod (from
# the kmod package); self-hosted runners don't ship it. Idempotent —
# no-op once baked into the runner/gold image.
run: |
command -v depmod >/dev/null 2>&1 || \
{ sudo apt-get update -qq && sudo apt-get install -y --no-install-recommends kmod; }
- name: Build Install Artifacts
working-directory: mulga/scripts/tofu-cluster
run: |
+9
View File
@@ -78,6 +78,15 @@ jobs:
sparse-checkout: scripts/tofu-cluster
path: mulga
- name: Install kmod (depmod)
if: steps.gate.outputs.selected == 'true'
# build-microvm-image's mandatory-tool preflight requires depmod (from
# the kmod package); self-hosted runners don't ship it. Idempotent —
# no-op once baked into the runner/gold image.
run: |
command -v depmod >/dev/null 2>&1 || \
{ sudo apt-get update -qq && sudo apt-get install -y --no-install-recommends kmod; }
- name: Build Install Artifacts
if: steps.gate.outputs.selected == 'true'
working-directory: mulga/scripts/tofu-cluster
+24
View File
@@ -113,6 +113,14 @@ jobs:
docker buildx prune -af --filter "until=24h" || true
docker system df || true
- name: Install kmod (depmod)
# build-microvm-image's mandatory-tool preflight requires depmod (from
# the kmod package) to generate modules.dep; self-hosted runners don't
# ship it. Idempotent — no-op once baked into the runner/gold image.
run: |
command -v depmod >/dev/null 2>&1 || \
{ sudo apt-get update -qq && sudo apt-get install -y --no-install-recommends kmod; }
- name: Build Install Artifacts
working-directory: mulga/scripts/tofu-cluster
run: |
@@ -512,6 +520,14 @@ jobs:
docker buildx prune -af --filter "until=24h" || true
docker system df || true
- name: Install kmod (depmod)
# build-microvm-image's mandatory-tool preflight requires depmod (from
# the kmod package) to generate modules.dep; self-hosted runners don't
# ship it. Idempotent — no-op once baked into the runner/gold image.
run: |
command -v depmod >/dev/null 2>&1 || \
{ sudo apt-get update -qq && sudo apt-get install -y --no-install-recommends kmod; }
- name: Build Install Artifacts
working-directory: mulga/scripts/tofu-cluster
run: |
@@ -928,6 +944,14 @@ jobs:
docker buildx prune -af --filter "until=24h" || true
docker system df || true
- name: Install kmod (depmod)
# build-microvm-image's mandatory-tool preflight requires depmod (from
# the kmod package) to generate modules.dep; self-hosted runners don't
# ship it. Idempotent — no-op once baked into the runner/gold image.
run: |
command -v depmod >/dev/null 2>&1 || \
{ sudo apt-get update -qq && sudo apt-get install -y --no-install-recommends kmod; }
- name: Build Install Artifacts
working-directory: mulga/scripts/tofu-cluster
run: |