From 0d8e0d6b1e6a9bfc080f3e73bb31cabd4b92f299 Mon Sep 17 00:00:00 2001 From: James Le Cuirot Date: Mon, 27 Apr 2026 16:00:43 +0100 Subject: [PATCH] ci: Fix bad handling of image format names This is what caused vagrant_vmware_fusion to not be built. Signed-off-by: James Le Cuirot --- .github/workflows/ci.yaml | 13 +++++++------ ci-automation/vms.sh | 14 +++++++------- 2 files changed, 14 insertions(+), 13 deletions(-) diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml index 6edd023009..260b8ba0be 100644 --- a/.github/workflows/ci.yaml +++ b/.github/workflows/ci.yaml @@ -189,13 +189,14 @@ jobs: images_out="images" - if echo "$formats" | tr ' ' '\n' | grep -q '^vmware'; then - formats=$(echo "$formats" | tr ' ' '\n' | sed '/vmware.*/d') - formats+=" vmware vmware_ova vmware_raw" + printf -v formats "%s\n" ${formats} + if grep -q '^vmware' <<< "${formats}"; then + formats=$(grep -v '^vmware' <<< "${formats}") + printf -v formats "%s\n" ${formats} vmware vmware_ova vmware_raw fi - if echo "$formats" | tr ' ' '\n' | grep -q -P '^(ami|aws)'; then - formats=$(echo "$formats" | tr ' ' '\n' | sed '/ami.*/d' | sed '/aws/d') - formats+=" ami ami_vmdk" + if printf "%s\n" $formats | grep -q '^ami\|^aws'; then + formats=$(grep -v '^ami\|^aws' <<< "${formats}") + printf -v formats "%s\n" ${formats} ami ami_vmdk fi for format in ${formats}; do diff --git a/ci-automation/vms.sh b/ci-automation/vms.sh index aa6c6325b9..1f4074dbdb 100644 --- a/ci-automation/vms.sh +++ b/ci-automation/vms.sh @@ -80,14 +80,14 @@ function _vm_build_impl() { apply_local_patches # Convert platform names (also used to find the test scripts) to image formats they entail - formats="$*" - if echo "$formats" | tr ' ' '\n' | grep -q '^vmware'; then - formats=$(echo "$formats" | tr ' ' '\n' | sed '/vmware.*/d') - formats+=" vmware vmware_ova vmware_raw" + printf -v formats "%s\n" ${formats} + if grep -q '^vmware' <<< "${formats}"; then + formats=$(grep -v '^vmware' <<< "${formats}") + printf -v formats "%s\n" ${formats} vmware vmware_ova vmware_raw fi - if echo "$formats" | tr ' ' '\n' | grep -q -P '^(ami|aws)'; then - formats=$(echo "$formats" | tr ' ' '\n' | sed '/ami.*/d' | sed '/aws/d') - formats+=" ami ami_vmdk" + if printf "%s\n" $formats | grep -q '^ami\|^aws'; then + formats=$(grep -v '^ami\|^aws' <<< "${formats}") + printf -v formats "%s\n" ${formats} ami ami_vmdk fi source sdk_lib/sdk_container_common.sh