Skip to content

update_eve_image: derive remove version from .ver#1187

Merged
eriknordmark merged 1 commit into
lf-edge:masterfrom
eriknordmark:fix-eveimage-remove-pr-builds
May 21, 2026
Merged

update_eve_image: derive remove version from .ver#1187
eriknordmark merged 1 commit into
lf-edge:masterfrom
eriknordmark:fix-eveimage-remove-pr-builds

Conversation

@eriknordmark
Copy link
Copy Markdown
Contributor

@eriknordmark eriknordmark commented May 20, 2026

Summary

This is a recent regression which the eden CI didn't catch since it depends on the form of EVE version string used to run the test. Fails for the 0.0.0-pr names but works on 16.6.0!

The eveimage-remove follow-up assertion added in df8752b (! stdout '{{ $short_version }}' after get-config) fails on every EVE PR-build run because $short_version is built from $eve_tag-$eve_hv-$eve_arch — but PR-build squashfs files embed 0.0.0-pr<N>-<sha>-<hv>-<arch> in their eve_version. EdgeNodeEVEImageRemove keys by exact match on --os-version, so --os-version=$short_version never finds the BaseOSConfig adam stored after eveimage-update (which used the .ver-corrected embedded version). The remove no-ops, the modern baseos block + ContentTree stay, and the assertion trips on the squashfs filename in contentInfo[].URL.

This patch drops --os-version from the three test calls in tests/update_eve_image/testdata/. The function then falls into its existing .ver-correction-file lookup (same path eveimage-update uses), resolves the embedded version, and clears the modern baseos block. The OCI variant has no .ver alongside an OCI URL, so its ! stdout assertion is removed pending a follow-up that lets EdgeNodeEVEImageRemove fall back to dev.GetBaseOSVersion() when no other source resolves.

Failure history this fixes

Test plan

Reproduced end-to-end against evebuild/pr:5973-kvm-amd64 (same image as the failing CI) in an isolated Multipass sandbox:

  • Baseline (upstream/master @ 3380f41, no patch): TestEdenScripts/update_eve_image_http FAILs at revert_eve_image_update.txt:56 with unexpected match for '5973-kvm-amd64' found in stdout: 5973-kvm-amd64 — exactly the CI signature.
  • This branch: TestEdenScripts/update_eve_image_http PASSes (505.82 s end-to-end).
  • CI on this PR.

🤖 Generated with Claude Code

The eveimage-remove follow-up assertion added in df8752b fails on EVE
PR builds: when $eve_tag is a PR number, $short_version is
"<N>-<hv>-<arch>", but the squashfs's embedded eve_version is
0.0.0-pr<N>-<sha>-<hv>-<arch>. EdgeNodeEVEImageRemove keys by exact
match on --os-version, so passing --os-version=$short_version never
finds the BaseOSConfig adam stored after eveimage-update (which used
the .ver-corrected embedded version). The remove no-ops, the modern
baseos block + ContentTree stay, and `! stdout '{{ $short_version }}'`
trips on the contentInfo[].URL.

Drop --os-version from the three test calls so the function falls into
its existing .ver-correction-file path and resolves the same version
eveimage-update used. The OCI variant has no .ver alongside an OCI
URL, so its assertion is dropped pending a follow-up that lets
EdgeNodeEVEImageRemove fall back to dev.GetBaseOSVersion() when no
other source resolves.

Verified against evebuild/pr:5973-kvm-amd64 in a Multipass sandbox:
TestEdenScripts/update_eve_image_http FAILs on upstream/master with
the same `unexpected match for '5973-kvm-amd64'` signature as recent
EVE-Upgrade jobs, and PASSes with this patch.

Signed-off-by: eriknordmark <erik@zededa.com>
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
@eriknordmark eriknordmark merged commit a0b19d6 into lf-edge:master May 21, 2026
29 of 30 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant