From 0dd5806532c3cd3956767434f397b62576464eca Mon Sep 17 00:00:00 2001 From: Claude Date: Thu, 19 Feb 2026 20:33:43 +0000 Subject: [PATCH] fix: use bash arrays for BUILD_ARGS and LABELS to handle values with spaces Labels like org.opencontainers.image.description="Python GitHub Runner" contain spaces. Using unquoted string variables caused word-splitting when passed to buildah, resulting in "accepts at most 1 arg(s), received 13". Switch to bash arrays with proper quoting so values with spaces are passed as single arguments. https://claude.ai/code/session_01WtJC749bMVKy7Xxr5P2WD7 --- .github/workflows/release.yaml | 19 +++++++++---------- 1 file changed, 9 insertions(+), 10 deletions(-) diff --git a/.github/workflows/release.yaml b/.github/workflows/release.yaml index 9582da4..6bd08f5 100644 --- a/.github/workflows/release.yaml +++ b/.github/workflows/release.yaml @@ -60,33 +60,32 @@ jobs: IMAGE_FORMAT: ${{ steps.manifest.outputs.format }} run: | # Build args from manifest - BUILD_ARGS="" - for arg in $(yq e '.build.args[]' manifest.yaml); do - BUILD_ARGS="${BUILD_ARGS} --build-arg ${arg}" - done + BUILD_ARGS=() + while IFS= read -r arg; do + BUILD_ARGS+=(--build-arg "${arg}") + done < <(yq e '.build.args[]' manifest.yaml) # Labels from manifest - LABELS="" + LABELS=() while IFS= read -r label; do if [[ -n "${label}" ]]; then label_key="${label%%=*}" label_value="${label#*=}" label_value="${label_value%\"}" label_value="${label_value#\"}" - LABELS="${LABELS} --label ${label_key}=${label_value}" + LABELS+=(--label "${label_key}=${label_value}") fi done < <(yq e '.build.labels[]' manifest.yaml) # Add version label - LABELS="${LABELS} --label org.opencontainers.image.version=${IMAGE_VERSION}" + LABELS+=(--label "org.opencontainers.image.version=${IMAGE_VERSION}") - # shellcheck disable=SC2086 buildah build \ --squash \ --pull-always \ --format "${IMAGE_FORMAT}" \ - ${BUILD_ARGS} \ - ${LABELS} \ + "${BUILD_ARGS[@]}" \ + "${LABELS[@]}" \ --tag "${IMAGE_NAME}:${IMAGE_VERSION}" \ .